{
  "openapi": "3.0.1",
  "info": {
    "title": "OpenAPI definition",
    "version": "1.3"
  },
  "servers": [
    {
      "url": "/",
      "description": "GoodData.CN API endpoint"
    }
  ],
  "tags": [
    {
      "name": "actions",
      "description": "| execution of some form of computation (RPC over JSON)"
    },
    {
      "name": "entities",
      "description": "| interconnected resources representing application state (JSON:API)"
    },
    {
      "name": "layout",
      "description": "| all-in-one declarative interface (set [PUT] & read [GET] over JSON)"
    },
    {
      "name": "authentication",
      "description": "| authentication & security related resources (REST API over JSON)"
    }
  ],
  "externalDocs": {
    "url": "../intro",
    "description": "API Documentation"
  },
  "paths": {
    "/api/actions/workspaces/{workspaceId}/execution/afm/execute": {
      "post": {
        "tags": [
          "actions"
        ],
        "summary": "Executes analytical request and returns link to the result",
        "description": "AFM is a combination of attributes, measures and filters that describe a query you want to execute.",
        "operationId": "computeReport",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "description": "Workspace identifier",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[.A-Za-z0-9_-]{1,255}$"
            }
          },
          {
            "name": "skip-cache",
            "in": "header",
            "description": "Ignore all caches during execution of current request.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "timestamp",
            "in": "header",
            "required": false,
            "example": "2020-06-03T10:15:30+01:00",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AfmExecution"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "AFM Execution response with links to the result and server-enhanced dimensions from the original request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AfmExecutionResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/actions/workspaces/{workspaceId}/execution/afm/computeValidObjects": {
      "post": {
        "tags": [
          "actions"
        ],
        "summary": "Valid objects",
        "description": "Returns list containing attributes, facts, or measures, which can be added to given AFM while still keeping it computable.",
        "operationId": "computeValidObjects",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "description": "Workspace identifier",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[.A-Za-z0-9_-]{1,255}$"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AfmValidObjectsQuery"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "List of attributes, facts and measures valid with respect to given AFM.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AfmValidObjectsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/actions/workspaces/{workspaceId}/execution/collectLabelElements": {
      "get": {
        "tags": [
          "actions"
        ],
        "summary": "Listing of label values.",
        "description": "Returns paged list of elements (values) of given label satisfying given filtering criteria.",
        "operationId": "computeLabelElements",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "description": "Workspace identifier",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[.A-Za-z0-9_-]{1,255}$"
            }
          },
          {
            "name": "label",
            "in": "query",
            "description": "Requested label.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "description": "Sort order of returned items.\nItems are sorted by ```label``` title.",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "ASC",
                "DESC"
              ],
              "default": "ASC"
            }
          },
          {
            "name": "includeTotalWithoutFilters",
            "in": "query",
            "description": "Specify if ```totalCountWithoutFilters``` should be returned.",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "complementFilter",
            "in": "query",
            "description": "Inverse filter:\n* ```false``` - return items matching ```patternFilter```\n* ```true``` - return items not matching ```patternFilter```",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "patternFilter",
            "in": "query",
            "description": "Return only items, whose ```label``` title case insensitively contains ```filter``` as substring.",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Request page with this offset.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Return only this number of items.",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1000
            }
          },
          {
            "name": "dataSamplingPercentage",
            "in": "query",
            "description": "Specifies the percentage of rows from fact datasets to use during computation. This feature is available only for workspaces that use a Vertica Data Source without table views.",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0,
              "exclusiveMinimum": true,
              "maximum": 100,
              "exclusiveMaximum": true
            }
          },
          {
            "name": "skip-cache",
            "description": "Ignore all caches during execution of current request.",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "List of label values.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ElementsResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/actions/workspaces/{workspaceId}/execution/afm/execute/result/{resultId}": {
      "get": {
        "tags": [
          "actions"
        ],
        "summary": "Get a single execution result",
        "description": "Gets a single execution result.",
        "operationId": "retrieveResult",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "description": "Workspace identifier",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[.A-Za-z0-9_-]{1,255}$"
            }
          },
          {
            "name": "resultId",
            "in": "path",
            "description": "Result ID",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "a9b28f9dc55f37ea9f4a5fb0c76895923591e781"
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Request page with these offsets. Format is offset=1,2,3,... - one offset for each dimensions in ResultSpec from originating AFM.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "default": []
            },
            "example": "offset=1,10"
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Return only this number of items. Format is limit=1,2,3,... - one limit for each dimensions in ResultSpec from originating AFM.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "default": []
            },
            "example": "limit=1,10"
          }
        ],
        "responses": {
          "200": {
            "description": "Execution result was found and returned.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ExecutionResult"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/admin/cookieSecurityConfigurations/{id}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@CookieSecurityConfigurations",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "lastRotation": "InstantValue"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=lastRotation==InstantValue"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationOutDocument"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "entities"
        ],
        "operationId": "updateEntity@CookieSecurityConfigurations",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "lastRotation": "InstantValue"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=lastRotation==InstantValue"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/admin/organizations/{id}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@Organizations",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "name": "someString",
              "hostname": "someString",
              "bootstrapUser.id": 321,
              "bootstrapUserGroup.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=name==someString;hostname==someString;bootstrapUser.id==321;bootstrapUserGroup.id==321"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "users",
                  "userGroups",
                  "bootstrapUser",
                  "bootstrapUserGroup",
                  "ALL"
                ]
              }
            },
            "example": "include=bootstrapUser,bootstrapUserGroup"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiOrganizationOutDocument"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "entities"
        ],
        "operationId": "updateEntity@Organizations",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "name": "someString",
              "hostname": "someString",
              "bootstrapUser.id": 321,
              "bootstrapUserGroup.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=name==someString;hostname==someString;bootstrapUser.id==321;bootstrapUserGroup.id==321"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "users",
                  "userGroups",
                  "bootstrapUser",
                  "bootstrapUserGroup",
                  "ALL"
                ]
              }
            },
            "example": "include=bootstrapUser,bootstrapUserGroup"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiOrganizationInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiOrganizationOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/dataSources": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@DataSources",
        "parameters": [
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "name": "someString",
              "type": "DatabaseTypeValue"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=name==someString;type==DatabaseTypeValue"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiDataSourceOutList"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "entities"
        ],
        "operationId": "createEntity@DataSources",
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiDataSourceInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiDataSourceOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/dataSources/{dataSourceId}/dataSourceTables": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@DataSourceTables",
        "parameters": [
          {
            "name": "dataSourceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "path": "v1,v2,v3",
              "type": "DataSourceTableTypeValue"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=path==v1,v2,v3;type==DataSourceTableTypeValue"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiDataSourceTableOutList"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/dataSources/{dataSourceId}/dataSourceTables/{id}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@DataSourceTables",
        "parameters": [
          {
            "name": "dataSourceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "path": "v1,v2,v3",
              "type": "DataSourceTableTypeValue"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=path==v1,v2,v3;type==DataSourceTableTypeValue"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiDataSourceTableOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/dataSources/{id}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@DataSources",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "name": "someString",
              "type": "DatabaseTypeValue"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=name==someString;type==DatabaseTypeValue"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiDataSourceOutDocument"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "entities"
        ],
        "operationId": "updateEntity@DataSources",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "name": "someString",
              "type": "DatabaseTypeValue"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=name==someString;type==DatabaseTypeValue"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiDataSourceInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiDataSourceOutDocument"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "entities"
        ],
        "operationId": "deleteEntity@DataSources",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "name": "someString",
              "type": "DatabaseTypeValue"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=name==someString;type==DatabaseTypeValue"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/Deleted"
          }
        }
      }
    },
    "/api/entities/organization": {
      "get": {
        "tags": [
          "entities"
        ],
        "summary": "Get current organization info",
        "description": "Gets a basic information about organization.",
        "operationId": "getOrganization_1",
        "responses": {
          "302": {
            "description": "Redirect to entity URI."
          }
        }
      }
    },
    "/api/entities/userGroups": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@UserGroups",
        "parameters": [
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {}
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter="
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "userGroups",
                  "parents",
                  "ALL"
                ]
              }
            },
            "example": "include=parents"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiUserGroupOutList"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "entities"
        ],
        "operationId": "createEntity@UserGroups",
        "parameters": [
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "userGroups",
                  "parents",
                  "ALL"
                ]
              }
            },
            "example": "include=parents"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiUserGroupInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiUserGroupOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/userGroups/{id}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@UserGroups",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {}
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter="
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "userGroups",
                  "parents",
                  "ALL"
                ]
              }
            },
            "example": "include=parents"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiUserGroupOutDocument"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "entities"
        ],
        "operationId": "updateEntity@UserGroups",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {}
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter="
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "userGroups",
                  "parents",
                  "ALL"
                ]
              }
            },
            "example": "include=parents"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiUserGroupInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiUserGroupOutDocument"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "entities"
        ],
        "operationId": "deleteEntity@UserGroups",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {}
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter="
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/Deleted"
          }
        }
      }
    },
    "/api/entities/users": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@Users",
        "parameters": [
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "authenticationId": "someString",
              "lastLogoutAllTimestamp": "InstantValue"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=authenticationId==someString;lastLogoutAllTimestamp==InstantValue"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "userGroups",
                  "ALL"
                ]
              }
            },
            "example": "include=userGroups"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiUserOutList"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "entities"
        ],
        "operationId": "createEntity@Users",
        "parameters": [
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "userGroups",
                  "ALL"
                ]
              }
            },
            "example": "include=userGroups"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiUserInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiUserOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/users/{id}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@Users",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "authenticationId": "someString",
              "lastLogoutAllTimestamp": "InstantValue"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=authenticationId==someString;lastLogoutAllTimestamp==InstantValue"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "userGroups",
                  "ALL"
                ]
              }
            },
            "example": "include=userGroups"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiUserOutDocument"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "entities"
        ],
        "operationId": "updateEntity@Users",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "authenticationId": "someString",
              "lastLogoutAllTimestamp": "InstantValue"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=authenticationId==someString;lastLogoutAllTimestamp==InstantValue"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "userGroups",
                  "ALL"
                ]
              }
            },
            "example": "include=userGroups"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiUserInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiUserOutDocument"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "entities"
        ],
        "operationId": "deleteEntity@Users",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "authenticationId": "someString",
              "lastLogoutAllTimestamp": "InstantValue"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=authenticationId==someString;lastLogoutAllTimestamp==InstantValue"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/Deleted"
          }
        }
      }
    },
    "/api/entities/users/{userId}/apiTokens": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@ApiTokens",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "cryptedToken": "someString",
              "bearerToken": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=cryptedToken==someString;bearerToken==someString"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiApiTokenOutList"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "entities"
        ],
        "operationId": "createEntity@ApiTokens",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiApiTokenInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiApiTokenOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/users/{userId}/apiTokens/{id}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@ApiTokens",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "cryptedToken": "someString",
              "bearerToken": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=cryptedToken==someString;bearerToken==someString"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiApiTokenOutDocument"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "entities"
        ],
        "operationId": "deleteEntity@ApiTokens",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "cryptedToken": "someString",
              "bearerToken": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=cryptedToken==someString;bearerToken==someString"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/Deleted"
          }
        }
      }
    },
    "/api/entities/workspaces": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@Workspaces",
        "parameters": [
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "name": "someString",
              "parent.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=name==someString;parent.id==321"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "workspaces",
                  "parent",
                  "ALL"
                ]
              }
            },
            "example": "include=parent"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "name": "metaInclude",
            "in": "query",
            "description": "Include Meta objects.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "uniqueItems": true,
              "type": "array",
              "description": "Included meta objects",
              "items": {
                "type": "string",
                "enum": [
                  "config",
                  "all"
                ]
              }
            },
            "example": "metaInclude=config,all"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiWorkspaceOutList"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "entities"
        ],
        "operationId": "createEntity@Workspaces",
        "parameters": [
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "workspaces",
                  "parent",
                  "ALL"
                ]
              }
            },
            "example": "include=parent"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiWorkspaceInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{id}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@Workspaces",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "name": "someString",
              "parent.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=name==someString;parent.id==321"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "workspaces",
                  "parent",
                  "ALL"
                ]
              }
            },
            "example": "include=parent"
          },
          {
            "name": "metaInclude",
            "in": "query",
            "description": "Include Meta objects.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "uniqueItems": true,
              "type": "array",
              "description": "Included meta objects",
              "items": {
                "type": "string",
                "enum": [
                  "config",
                  "all"
                ]
              }
            },
            "example": "metaInclude=config,all"
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "entities"
        ],
        "operationId": "updateEntity@Workspaces",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "name": "someString",
              "parent.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=name==someString;parent.id==321"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "workspaces",
                  "parent",
                  "ALL"
                ]
              }
            },
            "example": "include=parent"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiWorkspaceInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiWorkspaceOutDocument"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "entities"
        ],
        "operationId": "deleteEntity@Workspaces",
        "parameters": [
          {
            "$ref": "#/components/parameters/idPathParameter"
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "name": "someString",
              "parent.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=name==someString;parent.id==321"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/Deleted"
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/analyticalDashboards": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@AnalyticalDashboards",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "visualizationObjects",
                  "analyticalDashboards",
                  "labels",
                  "metrics",
                  "datasets",
                  "filterContexts",
                  "ALL"
                ]
              }
            },
            "example": "include=visualizationObjects,analyticalDashboards,labels,metrics,datasets,filterContexts"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutList"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "entities"
        ],
        "operationId": "createEntity@AnalyticalDashboards",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "visualizationObjects",
                  "analyticalDashboards",
                  "labels",
                  "metrics",
                  "datasets",
                  "filterContexts",
                  "ALL"
                ]
              }
            },
            "example": "include=visualizationObjects,analyticalDashboards,labels,metrics,datasets,filterContexts"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiAnalyticalDashboardInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/analyticalDashboards/{objectId}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@AnalyticalDashboards",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "visualizationObjects",
                  "analyticalDashboards",
                  "labels",
                  "metrics",
                  "datasets",
                  "filterContexts",
                  "ALL"
                ]
              }
            },
            "example": "include=visualizationObjects,analyticalDashboards,labels,metrics,datasets,filterContexts"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "entities"
        ],
        "operationId": "updateEntity@AnalyticalDashboards",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "visualizationObjects",
                  "analyticalDashboards",
                  "labels",
                  "metrics",
                  "datasets",
                  "filterContexts",
                  "ALL"
                ]
              }
            },
            "example": "include=visualizationObjects,analyticalDashboards,labels,metrics,datasets,filterContexts"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiAnalyticalDashboardInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutDocument"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "entities"
        ],
        "operationId": "deleteEntity@AnalyticalDashboards",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/Deleted"
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/attributes": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@Attributes",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString",
              "dataset.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString;dataset.id==321"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "datasets",
                  "labels",
                  "dataset",
                  "ALL"
                ]
              }
            },
            "example": "include=dataset,labels"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiAttributeOutList"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/attributes/{objectId}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@Attributes",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString",
              "dataset.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString;dataset.id==321"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "datasets",
                  "labels",
                  "dataset",
                  "ALL"
                ]
              }
            },
            "example": "include=dataset,labels"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiAttributeOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/datasets": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@Datasets",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "attributes",
                  "facts",
                  "datasets",
                  "references",
                  "ALL"
                ]
              }
            },
            "example": "include=attributes,facts,references"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiDatasetOutList"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/datasets/{objectId}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@Datasets",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "attributes",
                  "facts",
                  "datasets",
                  "references",
                  "ALL"
                ]
              }
            },
            "example": "include=attributes,facts,references"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiDatasetOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/facts": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@Facts",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString",
              "dataset.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString;dataset.id==321"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "datasets",
                  "dataset",
                  "ALL"
                ]
              }
            },
            "example": "include=dataset"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiFactOutList"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/facts/{objectId}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@Facts",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString",
              "dataset.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString;dataset.id==321"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "datasets",
                  "dataset",
                  "ALL"
                ]
              }
            },
            "example": "include=dataset"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiFactOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/filterContexts": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@FilterContexts",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "attributes",
                  "datasets",
                  "labels",
                  "ALL"
                ]
              }
            },
            "example": "include=attributes,datasets,labels"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiFilterContextOutList"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "entities"
        ],
        "operationId": "createEntity@FilterContexts",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "attributes",
                  "datasets",
                  "labels",
                  "ALL"
                ]
              }
            },
            "example": "include=attributes,datasets,labels"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiFilterContextInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiFilterContextOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/filterContexts/{objectId}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@FilterContexts",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "attributes",
                  "datasets",
                  "labels",
                  "ALL"
                ]
              }
            },
            "example": "include=attributes,datasets,labels"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiFilterContextOutDocument"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "entities"
        ],
        "operationId": "updateEntity@FilterContexts",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "attributes",
                  "datasets",
                  "labels",
                  "ALL"
                ]
              }
            },
            "example": "include=attributes,datasets,labels"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiFilterContextInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiFilterContextOutDocument"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "entities"
        ],
        "operationId": "deleteEntity@FilterContexts",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/Deleted"
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/labels": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@Labels",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString",
              "attribute.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString;attribute.id==321"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "attributes",
                  "attribute",
                  "ALL"
                ]
              }
            },
            "example": "include=attribute"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiLabelOutList"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/labels/{objectId}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@Labels",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString",
              "attribute.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString;attribute.id==321"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "attributes",
                  "attribute",
                  "ALL"
                ]
              }
            },
            "example": "include=attribute"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiLabelOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/metrics": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@Metrics",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "facts",
                  "attributes",
                  "labels",
                  "metrics",
                  "ALL"
                ]
              }
            },
            "example": "include=facts,attributes,labels,metrics"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiMetricOutList"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "entities"
        ],
        "operationId": "createEntity@Metrics",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "facts",
                  "attributes",
                  "labels",
                  "metrics",
                  "ALL"
                ]
              }
            },
            "example": "include=facts,attributes,labels,metrics"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiMetricInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiMetricOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/metrics/{objectId}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@Metrics",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "facts",
                  "attributes",
                  "labels",
                  "metrics",
                  "ALL"
                ]
              }
            },
            "example": "include=facts,attributes,labels,metrics"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiMetricOutDocument"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "entities"
        ],
        "operationId": "updateEntity@Metrics",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "facts",
                  "attributes",
                  "labels",
                  "metrics",
                  "ALL"
                ]
              }
            },
            "example": "include=facts,attributes,labels,metrics"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiMetricInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiMetricOutDocument"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "entities"
        ],
        "operationId": "deleteEntity@Metrics",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/Deleted"
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/visualizationObjects": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@VisualizationObjects",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "facts",
                  "attributes",
                  "labels",
                  "metrics",
                  "datasets",
                  "ALL"
                ]
              }
            },
            "example": "include=facts,attributes,labels,metrics,datasets"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiVisualizationObjectOutList"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "entities"
        ],
        "operationId": "createEntity@VisualizationObjects",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "facts",
                  "attributes",
                  "labels",
                  "metrics",
                  "datasets",
                  "ALL"
                ]
              }
            },
            "example": "include=facts,attributes,labels,metrics,datasets"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiVisualizationObjectInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiVisualizationObjectOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/visualizationObjects/{objectId}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@VisualizationObjects",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "facts",
                  "attributes",
                  "labels",
                  "metrics",
                  "datasets",
                  "ALL"
                ]
              }
            },
            "example": "include=facts,attributes,labels,metrics,datasets"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiVisualizationObjectOutDocument"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "entities"
        ],
        "operationId": "updateEntity@VisualizationObjects",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "facts",
                  "attributes",
                  "labels",
                  "metrics",
                  "datasets",
                  "ALL"
                ]
              }
            },
            "example": "include=facts,attributes,labels,metrics,datasets"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiVisualizationObjectInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiVisualizationObjectOutDocument"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "entities"
        ],
        "operationId": "deleteEntity@VisualizationObjects",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/Deleted"
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/workspaceDataFilterSettings": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@WorkspaceDataFilterSettings",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString",
              "workspaceDataFilter.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString;workspaceDataFilter.id==321"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "workspaceDataFilters",
                  "workspaceDataFilter",
                  "ALL"
                ]
              }
            },
            "example": "include=workspaceDataFilter"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterSettingOutList"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/workspaceDataFilterSettings/{objectId}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@WorkspaceDataFilterSettings",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString",
              "workspaceDataFilter.id": 321
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString;workspaceDataFilter.id==321"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "workspaceDataFilters",
                  "workspaceDataFilter",
                  "ALL"
                ]
              }
            },
            "example": "include=workspaceDataFilter"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterSettingOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/workspaceDataFilters": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getAllEntities@WorkspaceDataFilters",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "workspaceDataFilterSettings",
                  "filterSettings",
                  "ALL"
                ]
              }
            },
            "example": "include=filterSettings"
          },
          {
            "$ref": "#/components/parameters/page"
          },
          {
            "$ref": "#/components/parameters/size"
          },
          {
            "$ref": "#/components/parameters/sort"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterOutList"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "entities"
        ],
        "operationId": "createEntity@WorkspaceDataFilters",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "workspaceDataFilterSettings",
                  "filterSettings",
                  "ALL"
                ]
              }
            },
            "example": "include=filterSettings"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterOutDocument"
                }
              }
            }
          }
        }
      }
    },
    "/api/entities/workspaces/{workspaceId}/workspaceDataFilters/{objectId}": {
      "get": {
        "tags": [
          "entities"
        ],
        "operationId": "getEntity@WorkspaceDataFilters",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "workspaceDataFilterSettings",
                  "filterSettings",
                  "ALL"
                ]
              }
            },
            "example": "include=filterSettings"
          },
          {
            "name": "X-GDC-VALIDATE-RELATIONS",
            "in": "header",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterOutDocument"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "entities"
        ],
        "operationId": "updateEntity@WorkspaceDataFilters",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          },
          {
            "name": "include",
            "in": "query",
            "description": "Array of included collections or individual relationships. Includes are separated by commas (e.g. include=entity1s,entity2s). Collection include represents the inclusion of every relationship between this entity and the given collection. Relationship include represents the inclusion of the particular relationships only. If single parameter \"ALL\" is present, all possible includes are used (include=ALL).\n\n__WARNING:__ Individual include types (collection, relationship or ALL) cannot be combined together.",
            "required": false,
            "style": "form",
            "explode": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "workspaceDataFilterSettings",
                  "filterSettings",
                  "ALL"
                ]
              }
            },
            "example": "include=filterSettings"
          }
        ],
        "requestBody": {
          "content": {
            "application/vnd.gooddata.api+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterInDocument"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Request successfully processed",
            "content": {
              "application/vnd.gooddata.api+json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterOutDocument"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "entities"
        ],
        "operationId": "deleteEntity@WorkspaceDataFilters",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "objectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "predicate",
            "in": "query",
            "description": "Composed query parameters used for filtering. 'id' parameter can be used for all objects. Other parameters are present according to object type (title, description,...). You can specify any object parameter and parameter of related entity up to 2nd level (for example name=John&amp;language=english,czech&amp;address.city=London&amp;father.id=123).",
            "deprecated": true,
            "style": "form",
            "explode": true,
            "schema": {
              "type": "object",
              "additionalProperties": true
            },
            "example": {
              "title": "someString",
              "description": "someString"
            }
          },
          {
            "name": "filter",
            "in": "query",
            "description": "Filtering parameter in RSQL. See https://github.com/jirutka/rsql-parser.You can specify any object parameter and parameter of related entity up to 2nd level (for example title=='Some Title';description=='desc')",
            "schema": {
              "type": "string"
            },
            "example": "filter=title==someString;description==someString"
          }
        ],
        "responses": {
          "204": {
            "$ref": "#/components/responses/Deleted"
          }
        }
      }
    },
    "/api/layout/workspaces": {
      "get": {
        "tags": [
          "layout"
        ],
        "summary": "Get all workspaces layout",
        "description": "Gets complete layout of workspaces, their hierarchy, models.",
        "operationId": "getWorkspacesLayout",
        "responses": {
          "200": {
            "description": "Retrieved layout of all workspaces.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DeclarativeWorkspaces"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "layout"
        ],
        "summary": "Set all workspaces layout",
        "description": "Sets complete layout of workspaces, their hierarchy, models.",
        "operationId": "setWorkspacesLayout",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeclarativeWorkspaces"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "All workspaces layout set."
          }
        }
      }
    },
    "/api/layout/workspaces/{workspaceId}": {
      "get": {
        "tags": [
          "layout"
        ],
        "summary": "Get workspace layout",
        "description": "Retrieve current model of the workspace in declarative form.",
        "operationId": "getWorkspaceLayout",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved the workspace model.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DeclarativeWorkspaceModel"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "layout"
        ],
        "summary": "Set workspace layout",
        "description": "Set complete layout of workspace, like model, ACLs, etc.",
        "operationId": "putWorkspaceLayout",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeclarativeWorkspaceModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "The model of the workspace was set."
          }
        }
      }
    },
    "/api/layout/workspaces/{workspaceId}/logicalModel": {
      "get": {
        "tags": [
          "layout"
        ],
        "summary": "Get logical model",
        "description": "Retrieve current logical model of the workspace in declarative form.",
        "operationId": "getLogicalModel",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved current logical model.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DeclarativeModel"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "layout"
        ],
        "summary": "Set logical model",
        "description": "Set effective logical model of the workspace.",
        "operationId": "setLogicalModel",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeclarativeModel"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Logical model successfully set."
          }
        }
      }
    },
    "/api/layout/workspaces/{workspaceId}/analyticsModel": {
      "get": {
        "tags": [
          "layout"
        ],
        "summary": "Get analytics model",
        "description": "Retrieve current analytics model of the workspace.",
        "operationId": "getAnalyticsModel",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved current analytics model.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DeclarativeAnalytics"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "layout"
        ],
        "summary": "Set analytics model",
        "description": "Set effective analytics model of the workspace.",
        "operationId": "setAnalyticsModel",
        "parameters": [
          {
            "name": "workspaceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeclarativeAnalytics"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Analytics model successfully set."
          }
        }
      }
    },
    "/api/layout/workspaceDataFilters": {
      "get": {
        "tags": [
          "layout"
        ],
        "summary": "Get workspace data filters for all workspaces",
        "description": "Retrieve all workspaces and related workspace data filters (and their settings / values).",
        "operationId": "getWorkspaceDataFiltersLayout",
        "responses": {
          "200": {
            "description": "Retrieved all workspace data filters.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DeclarativeWorkspaceDataFilters"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "layout"
        ],
        "summary": "Set all workspace data filters",
        "description": "Sets workspace data filters in all workspaces in entire organization.",
        "operationId": "setWorkspaceDataFiltersLayout",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeclarativeWorkspaceDataFilters"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "All workspace data filters set."
          }
        }
      }
    },
    "/api/layout/users": {
      "get": {
        "tags": [
          "layout"
        ],
        "summary": "Get all users",
        "description": "Retrieve all users including authentication properties.",
        "operationId": "getUsersLayout",
        "responses": {
          "200": {
            "description": "Retrieved all users.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DeclarativeUsers"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "layout"
        ],
        "summary": "Put all users",
        "description": "Set all users and their authentication properties.",
        "operationId": "putUsersLayout",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeclarativeUsers"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Defined all users."
          }
        }
      }
    },
    "/api/layout/userGroups": {
      "get": {
        "tags": [
          "layout"
        ],
        "summary": "Get all users",
        "description": "Retrieve all user-groups eventually with parent group.",
        "operationId": "getUserGroupsLayout",
        "responses": {
          "200": {
            "description": "Retrieved all groups.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DeclarativeUserGroups"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "layout"
        ],
        "summary": "Put all data sources",
        "description": "Set all data sources including related physical model.",
        "operationId": "putDataSourcesLayout",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeclarativeUserGroups"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Defined all data sources."
          }
        }
      }
    },
    "/api/layout/organization": {
      "get": {
        "tags": [
          "layout"
        ],
        "summary": "Get organization layout",
        "description": "Retrieve complete layout of organization, workspaces, user-groups, etc.",
        "operationId": "getOrganizationLayout",
        "responses": {
          "200": {
            "description": "Retrieved all parts of an organization.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DeclarativeOrganization"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "layout"
        ],
        "summary": "Set organization layout",
        "description": "Sets complete layout of organization, like workspaces, user-groups, etc.",
        "operationId": "setOrganizationLayout",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeclarativeOrganization"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Defined all parts of an organization."
          }
        }
      }
    },
    "/api/layout/dataSources": {
      "get": {
        "tags": [
          "layout"
        ],
        "summary": "Get all data sources",
        "description": "Retrieve all data sources including related physical model.",
        "operationId": "getDataSourcesLayout",
        "responses": {
          "200": {
            "description": "Retrieved all data sources.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DeclarativeDataSources"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "layout"
        ],
        "summary": "Put all data sources",
        "description": "Set all data sources including related physical model.",
        "operationId": "putDataSourcesLayout_1",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeclarativeDataSources"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Defined all data sources."
          }
        }
      }
    },
    "/api/layout/dataSources/{dataSourceId}/physicalModel": {
      "get": {
        "tags": [
          "layout"
        ],
        "summary": "Get data source physical model layout",
        "description": "Retrieve complete layout of tables with their columns",
        "operationId": "getPdmLayout",
        "parameters": [
          {
            "name": "dataSourceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Retrieved data source physical mode layout.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DeclarativePdm"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "layout"
        ],
        "summary": "Set data source physical model layout",
        "description": "Sets complete layout of tables with their columns under corresponding Data Source.",
        "operationId": "setPdmLayout",
        "parameters": [
          {
            "name": "dataSourceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeclarativePdm"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "Data source physical mode layout set successfully."
          }
        }
      }
    },
    "/api/actions/dataSources/{dataSourceId}/uploadNotification": {
      "post": {
        "tags": [
          "actions"
        ],
        "summary": "Register an upload notification",
        "description": "Notification sets up all reports to be computed again with new data.",
        "operationId": "registerUploadNotification",
        "parameters": [
          {
            "name": "dataSourceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "An upload notification has been successfully registered."
          },
          "404": {
            "description": "Data source with given name does not exist."
          }
        }
      }
    },
    "/api/actions/dataSources/{dataSourceId}/generateLogicalModel": {
      "post": {
        "tags": [
          "actions"
        ],
        "summary": "Generate LDM from PDM",
        "description": "Generate LDM from PDM stored in data source.",
        "operationId": "generateLogicalModel",
        "parameters": [
          {
            "name": "dataSourceId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GenerateLdmRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "LDM generated successfully.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DeclarativeModel"
                }
              }
            }
          },
          "404": {
            "description": "Data source with given name does not exist.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/DeclarativeModel"
                }
              }
            }
          }
        }
      }
    },
    "/api/options": {
      "get": {
        "tags": [
          "entities"
        ],
        "summary": "Links for all configuration options",
        "description": "Retrieves links for all options for different configurations.",
        "operationId": "getAllOptions",
        "responses": {
          "200": {
            "description": "Links for all configuration options.",
            "content": {
              "application/json": {
                "examples": {
                  "All options": {
                    "description": "All options",
                    "value": {
                      "options": {
                        "description": "Options resources",
                        "links": {
                          "availableDrivers": "/api/options/availableDrivers"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/options/availableDrivers": {
      "get": {
        "tags": [
          "entities"
        ],
        "summary": "Get all available data source drivers",
        "description": "Retrieves a list of all supported data sources along with information about the used drivers.",
        "operationId": "getDataSourceDrivers",
        "responses": {
          "200": {
            "description": "A list of all available data source drivers.",
            "content": {
              "application/json": {
                "examples": {
                  "All available drivers": {
                    "description": "All available drivers",
                    "value": {
                      "POSTGRESQL": "org.postgresql.Driver",
                      "REDSHIFT": "com.amazon.redshift.jdbc42.Driver"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/actions/dataSources/{dataSourceId}/test": {
      "post": {
        "tags": [
          "actions"
        ],
        "summary": "Test data source connection",
        "description": "Test if it is possible to connect to database using connection provided by data source.",
        "operationId": "testDataSource",
        "parameters": [
          {
            "name": "dataSourceId",
            "in": "path",
            "description": "Data source id",
            "required": true,
            "schema": {
              "pattern": "^[.A-Za-z0-9_-]{1,255}$",
              "type": "string"
            },
            "example": "ds-02"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Result of test.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/TestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/actions/dataSources/{dataSourceId}/scan": {
      "post": {
        "tags": [
          "actions"
        ],
        "operationId": "scanPdm",
        "parameters": [
          {
            "name": "dataSourceId",
            "in": "path",
            "description": "Data source id",
            "required": true,
            "schema": {
              "pattern": "^[.A-Za-z0-9_-]{1,255}$",
              "type": "string"
            },
            "example": "myPostgres"
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScanRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/ScanResultPdm"
                }
              }
            }
          }
        }
      }
    },
    "/api/actions/dataSource/test": {
      "post": {
        "tags": [
          "actions"
        ],
        "summary": "Test connection by data source definition",
        "description": "Test if it is possible to connect to database using connection provided by data source definition.",
        "operationId": "testDataSourceDefinition",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TestDefinitionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Result of test.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/TestResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/auth/users/{userEmail}": {
      "get": {
        "tags": [
          "authentication"
        ],
        "operationId": "getUser",
        "parameters": [
          {
            "name": "userEmail",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AuthUser"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "authentication"
        ],
        "operationId": "updateUser",
        "parameters": [
          {
            "name": "userEmail",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthUser"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AuthUser"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "authentication"
        ],
        "operationId": "deleteUser",
        "parameters": [
          {
            "name": "userEmail",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          }
        }
      }
    },
    "/api/auth/users": {
      "get": {
        "tags": [
          "authentication"
        ],
        "operationId": "getUsers",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "uniqueItems": true,
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AuthUser"
                  }
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "authentication"
        ],
        "operationId": "createUser",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthUser"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/AuthUser"
                }
              }
            }
          }
        }
      }
    },
    "/api/profile": {
      "get": {
        "tags": [
          "authentication"
        ],
        "operationId": "getProfile",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/Profile"
                }
              }
            }
          }
        }
      }
    },
    "/api/license": {
      "get": {
        "tags": [
          "authentication"
        ],
        "summary": "Current license",
        "description": "Details about license validity, expiration and enabled features.",
        "operationId": "getLicense",
        "responses": {
          "200": {
            "description": "Current license.",
            "content": {
              "application/json": {
                "examples": {
                  "Current license.": {
                    "description": "Current license.",
                    "value": {
                      "id": "55b25376-4f2e-4b7a-96dc-961483d77f04",
                      "expiry": "2021-05-17T00:00:00Z",
                      "state": "EXPIRED",
                      "entitlements": []
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "No license has been found.",
            "content": {
              "*/*": {
                "schema": {
                  "$ref": "#/components/schemas/LicenseSimple"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AFM": {
        "required": [
          "attributes",
          "filters",
          "measures"
        ],
        "type": "object",
        "description": "Top level executable entity. Combination of [A]ttributes, [F]ilters &amp; [M]etrics.",
        "properties": {
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttributeItem"
            }
          },
          "filters": {
            "type": "array",
            "description": "Various filter types to filter execution result.",
            "items": {
              "$ref": "#/components/schemas/FilterDefinition"
            }
          },
          "measures": {
            "type": "array",
            "description": "Measures to be computed.",
            "items": {
              "$ref": "#/components/schemas/MeasureItem"
            }
          },
          "auxMeasures": {
            "type": "array",
            "description": "Measures to be referenced from other AFM objects (e.g. filters) but not included in the result.",
            "items": {
              "$ref": "#/components/schemas/MeasureItem"
            }
          }
        }
      },
      "AfmExecution": {
        "required": [
          "execution",
          "resultSpec"
        ],
        "type": "object",
        "properties": {
          "execution": {
            "$ref": "#/components/schemas/AFM"
          },
          "resultSpec": {
            "$ref": "#/components/schemas/ResultSpec"
          },
          "settings": {
            "$ref": "#/components/schemas/ExecutionSettings"
          }
        }
      },
      "ArithmeticMeasureDefinition": {
        "required": [
          "arithmeticMeasure"
        ],
        "type": "object",
        "description": "Measure representing arithmetics between measures.",
        "properties": {
          "arithmeticMeasure": {
            "required": [
              "measureIdentifiers",
              "operator"
            ],
            "type": "object",
            "properties": {
              "measureIdentifiers": {
                "type": "array",
                "description": "List of measures to apply arithmetic operation by chosen operator.",
                "items": {
                  "$ref": "#/components/schemas/LocalIdentifier"
                }
              },
              "operator": {
                "type": "string",
                "description": "Arithmetic operator describing operation between measures.",
                "example": "SUM",
                "enum": [
                  "SUM",
                  "DIFFERENCE",
                  "MULTIPLICATION",
                  "RATIO",
                  "CHANGE"
                ]
              }
            }
          }
        }
      },
      "AttributeItem": {
        "required": [
          "label",
          "localIdentifier"
        ],
        "type": "object",
        "properties": {
          "localIdentifier": {
            "type": "string",
            "pattern": "^[.A-Za-z0-9_-]+$"
          },
          "label": {
            "$ref": "#/components/schemas/AfmObjectIdentifier"
          }
        }
      },
      "Dimension": {
        "required": [
          "itemIdentifiers"
        ],
        "type": "object",
        "description": "Single dimension description.",
        "properties": {
          "itemIdentifiers": {
            "type": "array",
            "description": "List of items in current dimension. Can reference 'localIdentifier' from 'AttributeItem', or special pseudo attribute \"measureGroup\" representing list of measures.",
            "example": "[ \"attribute1\", \"measureGroup\"]",
            "items": {
              "type": "string"
            }
          },
          "localIdentifier": {
            "type": "string",
            "pattern": "^[.A-Za-z0-9_-]+$",
            "description": "Dimension identification within requests. Other entities can reference this dimension by this value.",
            "example": "firstDimension"
          },
          "sorting": {
            "type": "array",
            "description": "List of sorting rules. From most relevant to least relevant (less relevant rule is applied, when more relevant rule compares items as equal).",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/SortKeyAttribute"
                },
                {
                  "$ref": "#/components/schemas/SortKeyValue"
                }
              ]
            }
          }
        }
      },
      "GrandTotal": {
        "required": [
          "localIdentifier",
          "function",
          "includedDimensions"
        ],
        "type": "object",
        "description": "Definition of a grand total. Grand total data will be computed into a separate section of the result structure so that client has more options how to visualize them.",
        "properties": {
          "localIdentifier": {
            "type": "string",
            "description": "Grand total identification within this request. The corresponding data in the result are expected to be matched using this identifier.",
            "example": "firstGrandTotal"
          },
          "function": {
            "type": "string",
            "description": "Aggregation function for grand total computation.",
            "example": "SUM"
          },
          "includedDimensions": {
            "type": "object",
            "description": "Mapping specifying dimensions on which this grand total will be computed. Dimensions are referenced via their localIdentifiers. Optionally one can specify also the values (properties) of the dimensions' attributes (see ```dimensionAttributesValues```).",
            "example": "{\"dim1\": null, \"dim2\": {\"dimensionAttributesValues\": {\"measureGroup\": [\"m1\"]}}",
            "additionalProperties": {
              "$ref": "#/components/schemas/IncludedDimensionProps"
            }
          }
        }
      },
      "IncludedDimensionProps": {
        "required": [
          "dimensionAttributesValues"
        ],
        "type": "object",
        "nullable": true,
        "properties": {
          "dimensionAttributesValues": {
            "type": "object",
            "description": "Allows to customize for which attribute values the grand total will be computed. If the values for particular attribute are not specified then the totals for all values are computed. Note that this also covers the case of individual measures (treated as values of the \"measureGroup\" pseudo attribute).",
            "example": "{\"measureGroup\": [\"m1\"], \"status\": [\"Lost\", \"Won\"]}",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        }
      },
      "TotalFunction": {
        "type": "string",
        "description": "Sorting elements - ascending/descending order.",
        "enum": [
          "SUM",
          "MIN",
          "MAX",
          "AVG",
          "MED"
        ]
      },
      "SortKeyAttribute": {
        "required": [
          "attribute"
        ],
        "type": "object",
        "description": "Sorting rule for sorting by attribute value in current dimension.",
        "properties": {
          "attribute": {
            "required": [
              "attributeIdentifier"
            ],
            "type": "object",
            "properties": {
              "direction": {
                "$ref": "#/components/schemas/SortDirection"
              },
              "attributeIdentifier": {
                "type": "string",
                "description": "One of the 'Dimension.itemIdentifiers' referencing the attribute which should be used for sorting the dimension.s",
                "example": "attribute1"
              }
            }
          }
        }
      },
      "SortKeyValue": {
        "required": [
          "value"
        ],
        "type": "object",
        "properties": {
          "value": {
            "required": [
              "dataColumnLocators"
            ],
            "type": "object",
            "properties": {
              "direction": {
                "$ref": "#/components/schemas/SortDirection"
              },
              "dataColumnLocators": {
                "type": "object",
                "description": "Mapping from dimensions to data column locators. Locators for each dimension opposite to the sorted one must be specified.",
                "example": "{\"dim2\": {\"status\": \"lost\", \"measureGroup\": \"m1\"}}",
                "additionalProperties": {
                  "$ref": "#/components/schemas/DataColumnLocator"
                }
              }
            }
          }
        }
      },
      "SortDirection": {
        "type": "string",
        "description": "Sorting elements - ascending/descending order.",
        "enum": [
          "ASC",
          "DESC"
        ]
      },
      "DataColumnLocator": {
        "type": "object",
        "description": "Mapping from dimension items (either 'localIdentifier' from 'AttributeItem', or \"measureGroup\") to their respective values. This effectively specifies the path (location) of the data column used for sorting. Therefore values for all dimension items must be specified.",
        "example": "{\"status\": \"lost\", \"measureGroup\": \"m1\"}",
        "additionalProperties": {
          "type": "string"
        }
      },
      "CommonFilter": {
        "type": "object",
        "properties": {
          "applyOnResult": {
            "type": "boolean",
            "description": "Force the filter to be applied on the result (true) or source data (false). If not specified at all the default behaviour specific to each type of filter is used."
          }
        }
      },
      "FilterDefinition": {
        "type": "object",
        "description": "Abstract filter definition type",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AttributeFilter"
          },
          {
            "$ref": "#/components/schemas/MeasureValueFilter"
          },
          {
            "$ref": "#/components/schemas/RankingFilter"
          },
          {
            "$ref": "#/components/schemas/DateFilter"
          },
          {
            "$ref": "#/components/schemas/InlineFilterDefinition"
          }
        ]
      },
      "CommonAttributeFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonFilter"
          },
          {
            "required": [
              "label"
            ],
            "type": "object",
            "properties": {
              "label": {
                "$ref": "#/components/schemas/Identifier"
              }
            }
          }
        ]
      },
      "AttributeFilter": {
        "type": "object",
        "description": "Abstract filter definition type attributes",
        "oneOf": [
          {
            "$ref": "#/components/schemas/PositiveAttributeFilter"
          },
          {
            "$ref": "#/components/schemas/NegativeAttributeFilter"
          }
        ]
      },
      "PositiveAttributeFilter": {
        "required": [
          "positiveAttributeFilter"
        ],
        "type": "object",
        "description": "Filter able to limit element values by label and related selected elements.",
        "properties": {
          "positiveAttributeFilter": {
            "$ref": "#/components/schemas/PositiveAttributeFilterBody"
          }
        }
      },
      "PositiveAttributeFilterBody": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonAttributeFilter"
          },
          {
            "required": [
              "in"
            ],
            "type": "object",
            "properties": {
              "in": {
                "$ref": "#/components/schemas/AttributeFilterElements"
              }
            }
          }
        ]
      },
      "NegativeAttributeFilter": {
        "required": [
          "negativeAttributeFilter"
        ],
        "type": "object",
        "description": "Filter able to limit element values by label and related selected negated elements.",
        "properties": {
          "negativeAttributeFilter": {
            "$ref": "#/components/schemas/NegativeAttributeFilterBody"
          }
        }
      },
      "NegativeAttributeFilterBody": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonAttributeFilter"
          },
          {
            "required": [
              "notIn"
            ],
            "type": "object",
            "properties": {
              "notIn": {
                "$ref": "#/components/schemas/AttributeFilterElements"
              }
            }
          }
        ]
      },
      "AbstractMeasureValueFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonFilter"
          },
          {
            "type": "object",
            "properties": {
              "dimensionality": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Identifier"
                }
              }
            }
          }
        ]
      },
      "CommonMeasureValueFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMeasureValueFilter"
          },
          {
            "required": [
              "measure"
            ],
            "type": "object",
            "properties": {
              "measure": {
                "$ref": "#/components/schemas/Identifier"
              },
              "treatNullValuesAs": {
                "type": "number",
                "example": 0
              }
            }
          }
        ]
      },
      "MeasureValueFilter": {
        "type": "object",
        "description": "Abstract filter definition type filtering by the value of the measure.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/ComparisonMeasureValueFilter"
          },
          {
            "$ref": "#/components/schemas/RangeMeasureValueFilter"
          }
        ]
      },
      "ComparisonMeasureValueFilter": {
        "required": [
          "comparisonMeasureValueFilter"
        ],
        "type": "object",
        "description": "Filter the result by comparing specified measure to given constant value, using given comparison operator.",
        "properties": {
          "comparisonMeasureValueFilter": {
            "$ref": "#/components/schemas/ComparisonMeasureValueFilterBody"
          }
        }
      },
      "ComparisonMeasureValueFilterBody": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonMeasureValueFilter"
          },
          {
            "required": [
              "operator",
              "value"
            ],
            "type": "object",
            "properties": {
              "operator": {
                "type": "string",
                "example": "GREATER_THAN",
                "enum": [
                  "GREATER_THAN",
                  "GREATER_THAN_OR_EQUAL_TO",
                  "LESS_THAN",
                  "LESS_THAN_OR_EQUAL_TO",
                  "EQUAL_TO",
                  "NOT_EQUAL_TO"
                ]
              },
              "value": {
                "type": "number",
                "example": 1327
              }
            }
          }
        ]
      },
      "RangeMeasureValueFilter": {
        "required": [
          "rangeMeasureValueFilter"
        ],
        "type": "object",
        "description": "Filter the result by comparing specified measure to given range of values.",
        "properties": {
          "rangeMeasureValueFilter": {
            "$ref": "#/components/schemas/RangeMeasureValueFilterBody"
          }
        }
      },
      "RangeMeasureValueFilterBody": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonMeasureValueFilter"
          },
          {
            "required": [
              "from",
              "operator",
              "to"
            ],
            "type": "object",
            "properties": {
              "operator": {
                "type": "string",
                "example": "BETWEEN",
                "enum": [
                  "BETWEEN",
                  "NOT_BETWEEN"
                ]
              },
              "from": {
                "type": "number",
                "example": 100
              },
              "to": {
                "type": "number",
                "example": 999
              }
            }
          }
        ]
      },
      "RankingFilter": {
        "required": [
          "rankingFilter"
        ],
        "type": "object",
        "description": "Filter the result on top/bottom N values according to given measure(s).",
        "properties": {
          "rankingFilter": {
            "$ref": "#/components/schemas/RankingFilterBody"
          }
        }
      },
      "RankingFilterBody": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractMeasureValueFilter"
          },
          {
            "required": [
              "measures",
              "operator",
              "value"
            ],
            "type": "object",
            "properties": {
              "measures": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Identifier"
                }
              },
              "operator": {
                "type": "string",
                "enum": [
                  "TOP",
                  "BOTTOM"
                ]
              },
              "value": {
                "type": "integer",
                "example": 5
              }
            }
          }
        ]
      },
      "CommonDateFilter": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonFilter"
          },
          {
            "required": [
              "dataset"
            ],
            "type": "object",
            "properties": {
              "dataset": {
                "$ref": "#/components/schemas/AfmObjectIdentifier"
              }
            }
          }
        ]
      },
      "DateFilter": {
        "type": "object",
        "description": "Abstract filter definition type for dates",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AbsoluteDateFilter"
          },
          {
            "$ref": "#/components/schemas/RelativeDateFilter"
          }
        ]
      },
      "AbsoluteDateFilter": {
        "required": [
          "absoluteDateFilter"
        ],
        "type": "object",
        "description": "A date filter specifying exact from and to dates.",
        "properties": {
          "absoluteDateFilter": {
            "$ref": "#/components/schemas/AbsoluteDateFilterBody"
          }
        }
      },
      "AbsoluteDateFilterBody": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonDateFilter"
          },
          {
            "required": [
              "from",
              "to"
            ],
            "type": "object",
            "properties": {
              "from": {
                "type": "string",
                "format": "date",
                "example": "2020-07-01"
              },
              "to": {
                "type": "string",
                "format": "date",
                "example": "2020-07-16"
              }
            }
          }
        ]
      },
      "RelativeDateFilter": {
        "required": [
          "relativeDateFilter"
        ],
        "type": "object",
        "properties": {
          "relativeDateFilter": {
            "$ref": "#/components/schemas/RelativeDateFilterBody"
          }
        }
      },
      "RelativeDateFilterBody": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonDateFilter"
          },
          {
            "required": [
              "from",
              "granularity",
              "to"
            ],
            "type": "object",
            "description": "A date filter specifying a time interval that is relative to the current date. For example, last week, next month, and so on. Field dataset is representing qualifier of date dimension.",
            "properties": {
              "granularity": {
                "type": "string",
                "description": "Date granularity specifying particular date attribute in given dimension.",
                "example": "DAY",
                "enum": [
                  "MINUTE",
                  "HOUR",
                  "DAY",
                  "WEEK",
                  "MONTH",
                  "QUARTER",
                  "YEAR",
                  "MINUTE_OF_HOUR",
                  "HOUR_OF_DAY",
                  "DAY_OF_WEEK",
                  "DAY_OF_MONTH",
                  "DAY_OF_YEAR",
                  "WEEK_OF_YEAR",
                  "MONTH_OF_YEAR",
                  "QUARTER_OF_YEAR"
                ]
              },
              "from": {
                "type": "integer",
                "format": "int32",
                "description": "Start of the filtering interval. Specified by number of periods (with respect to given granularity). Typically negative (historical time interval like -2 for '2 days/weeks, ... ago').",
                "example": -6
              },
              "to": {
                "type": "integer",
                "format": "int32",
                "description": "End of the filtering interval. Specified by number of periods (with respect to given granularity). Value 'O' is representing current time-interval (current day, week, ...).",
                "example": 0
              }
            }
          }
        ]
      },
      "InlineFilterDefinition": {
        "required": [
          "inline"
        ],
        "type": "object",
        "description": "Filter in form of direct MAQL query.",
        "properties": {
          "inline": {
            "$ref": "#/components/schemas/InlineFilterDefinitionBody"
          }
        }
      },
      "InlineFilterDefinitionBody": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CommonFilter"
          },
          {
            "required": [
              "filter"
            ],
            "type": "object",
            "properties": {
              "filter": {
                "type": "string"
              }
            }
          }
        ]
      },
      "FilterDefinitionForSimpleMeasure": {
        "type": "object",
        "description": "Abstract filter definition type for simple measure.",
        "oneOf": [
          {
            "$ref": "#/components/schemas/DateFilter"
          },
          {
            "$ref": "#/components/schemas/AttributeFilter"
          }
        ]
      },
      "AttributeFilterElements": {
        "required": [
          "values"
        ],
        "type": "object",
        "description": "Filter on specific set of label values.",
        "properties": {
          "values": {
            "uniqueItems": true,
            "type": "array",
            "description": "Set of label values.",
            "example": "[\"value1\", \"value2\"]",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "MeasureDefinition": {
        "type": "object",
        "description": "Abstract measure definition type",
        "oneOf": [
          {
            "$ref": "#/components/schemas/InlineMeasureDefinition"
          },
          {
            "$ref": "#/components/schemas/ArithmeticMeasureDefinition"
          },
          {
            "$ref": "#/components/schemas/SimpleMeasureDefinition"
          },
          {
            "$ref": "#/components/schemas/PopDateMeasureDefinition"
          },
          {
            "$ref": "#/components/schemas/PopDatasetMeasureDefinition"
          }
        ]
      },
      "MeasureItem": {
        "required": [
          "definition",
          "localIdentifier"
        ],
        "type": "object",
        "properties": {
          "localIdentifier": {
            "type": "string",
            "pattern": "^[.A-Za-z0-9_-]+$",
            "example": "sampleAutoGenerated0123_ID"
          },
          "definition": {
            "$ref": "#/components/schemas/MeasureDefinition"
          }
        }
      },
      "PopDataset": {
        "required": [
          "dataset",
          "periodsAgo"
        ],
        "type": "object",
        "properties": {
          "dataset": {
            "$ref": "#/components/schemas/AfmObjectIdentifier"
          },
          "periodsAgo": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PopDatasetMeasureDefinition": {
        "required": [
          "previousPeriodMeasure"
        ],
        "type": "object",
        "description": "Previous period type of measure.",
        "properties": {
          "previousPeriodMeasure": {
            "required": [
              "dateDatasets",
              "measureIdentifier"
            ],
            "type": "object",
            "properties": {
              "measureIdentifier": {
                "$ref": "#/components/schemas/LocalIdentifier"
              },
              "dateDatasets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PopDataset"
                }
              }
            }
          }
        }
      },
      "PopDate": {
        "required": [
          "attribute",
          "periodsAgo"
        ],
        "type": "object",
        "properties": {
          "attribute": {
            "$ref": "#/components/schemas/AfmObjectIdentifier"
          },
          "periodsAgo": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PopDateMeasureDefinition": {
        "required": [
          "overPeriodMeasure"
        ],
        "type": "object",
        "description": "Period over period type of measure.",
        "properties": {
          "overPeriodMeasure": {
            "required": [
              "dateAttributes",
              "measureIdentifier"
            ],
            "type": "object",
            "properties": {
              "measureIdentifier": {
                "$ref": "#/components/schemas/LocalIdentifier"
              },
              "dateAttributes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PopDate"
                }
              }
            }
          }
        }
      },
      "ResultSpec": {
        "required": [
          "dimensions"
        ],
        "type": "object",
        "description": "Specifies how the result data will formatted (```dimensions```) and which additional data shall be computed (```grandTotals```).",
        "properties": {
          "dimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Dimension"
            }
          },
          "grandTotals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GrandTotal"
            }
          }
        }
      },
      "ExecutionSettings": {
        "type": "object",
        "description": "Various setting affecting the process of ADM execution or its result",
        "properties": {
          "dataSamplingPercentage": {
            "type": "number",
            "description": "Specifies the percentage of rows from fact datasets to use during computation. This feature is available only for workspaces that use a Vertica Data Source without table views.",
            "minimum": 0,
            "exclusiveMinimum": true,
            "maximum": 100,
            "exclusiveMaximum": true
          }
        }
      },
      "SimpleMeasureDefinition": {
        "required": [
          "measure"
        ],
        "type": "object",
        "properties": {
          "measure": {
            "required": [
              "item"
            ],
            "type": "object",
            "properties": {
              "item": {
                "$ref": "#/components/schemas/AfmObjectIdentifier"
              },
              "aggregation": {
                "type": "string",
                "description": "Definition of aggregation type of the measure.",
                "example": "SUM",
                "enum": [
                  "SUM",
                  "COUNT",
                  "APPROXIMATE_COUNT",
                  "AVG",
                  "MIN",
                  "MAX",
                  "MEDIAN",
                  "RUNSUM"
                ]
              },
              "computeRatio": {
                "description": "If true compute the percentage of given measure values (broken down by AFM attributes) to the total (not broken down).",
                "default": false,
                "example": true,
                "type": "boolean"
              },
              "filters": {
                "type": "array",
                "description": "Measure can be filtered by attribute filters with the same interface as ones for global AFM. Note that only one DateFilter is allowed.",
                "items": {
                  "$ref": "#/components/schemas/FilterDefinitionForSimpleMeasure"
                }
              }
            }
          }
        }
      },
      "Identifier": {
        "type": "object",
        "description": "Abstract identifier type",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AfmObjectIdentifier"
          },
          {
            "$ref": "#/components/schemas/LocalIdentifier"
          }
        ]
      },
      "ObjectIdentifier": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "description": "Identifier of LDM object determined by ID &amp; type.",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "example": "sample_item.price"
          },
          "type": {
            "type": "string",
            "example": "fact"
          }
        }
      },
      "AfmObjectIdentifier": {
        "required": [
          "identifier"
        ],
        "type": "object",
        "description": "ObjectIdentifier with `identifier` wrapper. This serves to distinguish MD object identifiers in AFM request from local identifiers.",
        "properties": {
          "identifier": {
            "$ref": "#/components/schemas/ObjectIdentifier"
          }
        }
      },
      "LocalIdentifier": {
        "required": [
          "localIdentifier"
        ],
        "type": "object",
        "description": "String that uniquely identifies the measure in the context of the current AFM.",
        "properties": {
          "localIdentifier": {
            "type": "string",
            "pattern": "^[.A-Za-z0-9_-]+$",
            "example": "sampleAutoGenerated0123_ID"
          }
        }
      },
      "InlineMeasureDefinition": {
        "required": [
          "inline"
        ],
        "type": "object",
        "description": "Measure defined by the raw MAQL query.",
        "properties": {
          "inline": {
            "required": [
              "maql"
            ],
            "type": "object",
            "properties": {
              "maql": {
                "type": "string"
              }
            }
          }
        }
      },
      "AfmExecutionResponse": {
        "required": [
          "executionResponse"
        ],
        "type": "object",
        "properties": {
          "executionResponse": {
            "$ref": "#/components/schemas/ExecutionResponse"
          }
        }
      },
      "ExecutionLinks": {
        "required": [
          "executionResult"
        ],
        "type": "object",
        "properties": {
          "executionResult": {
            "type": "string"
          }
        }
      },
      "ExecutionResponse": {
        "required": [
          "dimensions",
          "links"
        ],
        "type": "object",
        "properties": {
          "dimensions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResultDimension"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ExecutionLinks"
          }
        }
      },
      "ResultDimension": {
        "required": [
          "headers"
        ],
        "type": "object",
        "properties": {
          "headers": {
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/MeasureGroupHeader"
                },
                {
                  "$ref": "#/components/schemas/AttributeHeader"
                }
              ]
            }
          }
        }
      },
      "MeasureGroupHeader": {
        "required": [
          "measureGroupHeaders"
        ],
        "type": "object",
        "properties": {
          "measureGroupHeaders": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MeasureHeaderOut"
            }
          }
        }
      },
      "MeasureHeaderOut": {
        "required": [
          "localIdentifier"
        ],
        "type": "object",
        "properties": {
          "localIdentifier": {
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "AttributeHeader": {
        "required": [
          "attributeHeader"
        ],
        "type": "object",
        "properties": {
          "attributeHeader": {
            "required": [
              "localIdentifier",
              "attribute",
              "attributeName",
              "label",
              "labelName",
              "primaryLabel"
            ],
            "type": "object",
            "properties": {
              "localIdentifier": {
                "type": "string",
                "pattern": "^[.A-Za-z0-9_-]+$"
              },
              "attribute": {
                "$ref": "#/components/schemas/ObjectIdentifier"
              },
              "attributeName": {
                "type": "string"
              },
              "label": {
                "$ref": "#/components/schemas/ObjectIdentifier"
              },
              "labelName": {
                "type": "string"
              },
              "primaryLabel": {
                "$ref": "#/components/schemas/ObjectIdentifier"
              },
              "granularity": {
                "type": "string",
                "enum": [
                  "YEAR",
                  "DAY",
                  "HOUR",
                  "MINUTE",
                  "QUARTER",
                  "MONTH",
                  "WEEK",
                  "QUARTER_OF_YEAR",
                  "MONTH_OF_YEAR",
                  "DAY_OF_YEAR",
                  "DAY_OF_WEEK",
                  "DAY_OF_MONTH",
                  "HOUR_OF_DAY",
                  "MINUTE_OF_HOUR",
                  "WEEK_OF_YEAR"
                ]
              }
            }
          }
        }
      },
      "AfmValidObjectsQuery": {
        "required": [
          "afm",
          "types"
        ],
        "type": "object",
        "description": "Entity holding AFM and list of object types whose validity should be computed.",
        "properties": {
          "types": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string",
              "example": "facts",
              "enum": [
                "facts",
                "attributes",
                "measures",
                "UNRECOGNIZED"
              ]
            }
          },
          "afm": {
            "$ref": "#/components/schemas/AFM"
          }
        }
      },
      "AfmValidObjectsResponse": {
        "required": [
          "items"
        ],
        "type": "object",
        "description": "All objects of specified types valid with respect to given AFM.",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ObjectIdentifier"
            }
          }
        }
      },
      "Element": {
        "required": [
          "primaryTitle",
          "title"
        ],
        "type": "object",
        "properties": {
          "primaryTitle": {
            "type": "string",
            "description": "Title of primary label of attribute owning requested label."
          },
          "title": {
            "type": "string",
            "description": "Title of requested label."
          }
        },
        "description": "List of returned elements."
      },
      "ElementsResponse": {
        "required": [
          "elements",
          "paging",
          "primaryLabel"
        ],
        "type": "object",
        "description": "Entity holding list of sorted &amp; filtered label elements, related primary label of attribute owning requested label and paging.",
        "properties": {
          "primaryLabel": {
            "$ref": "#/components/schemas/ObjectIdentifier"
          },
          "elements": {
            "type": "array",
            "description": "List of returned elements.",
            "items": {
              "$ref": "#/components/schemas/Element"
            }
          },
          "paging": {
            "$ref": "#/components/schemas/Paging"
          },
          "totalCountWithoutFilters": {
            "type": "integer",
            "description": "Total count of items ignoring all filters (using on ```project``` and  ```label``` from request).",
            "format": "int32"
          }
        }
      },
      "Paging": {
        "required": [
          "count",
          "offset",
          "total"
        ],
        "type": "object",
        "properties": {
          "total": {
            "type": "integer",
            "description": "Count of returnable items ignoring paging.",
            "example": 100,
            "format": "int32"
          },
          "count": {
            "type": "integer",
            "description": "Count of items in this page.",
            "example": 5,
            "format": "int32"
          },
          "offset": {
            "type": "integer",
            "description": "Offset of this page.",
            "example": 10,
            "format": "int32"
          },
          "next": {
            "type": "string",
            "description": "Link to next page, or null if this is last page.",
            "example": "https://sample.gooddata.com/api/actions/workspaces/sampleWorkspace/execution/collectLabelElements?label=sample.price&;amp;limit=5&amp;offset=10"
          }
        },
        "description": "Current page description."
      },
      "AttributeExecutionResultHeader": {
        "required": [
          "attributeHeader"
        ],
        "type": "object",
        "properties": {
          "attributeHeader": {
            "$ref": "#/components/schemas/AttributeResultHeader"
          }
        }
      },
      "AttributeResultHeader": {
        "required": [
          "labelValue",
          "primaryLabelValue"
        ],
        "type": "object",
        "properties": {
          "labelValue": {
            "type": "string",
            "description": "A value of the current attribute label.",
            "example": "East Coast"
          },
          "primaryLabelValue": {
            "type": "string",
            "description": "A value of the primary attribute label.",
            "example": "1225"
          }
        },
        "description": "Header containing the information related to attributes."
      },
      "DimensionHeader": {
        "required": [
          "headerGroups"
        ],
        "type": "object",
        "properties": {
          "headerGroups": {
            "type": "array",
            "description": "An array containing header groups.",
            "items": {
              "$ref": "#/components/schemas/HeaderGroup"
            }
          }
        },
        "description": "Contains the dimension-specific header information."
      },
      "ExecutionResult": {
        "required": [
          "data",
          "dimensionHeaders",
          "grandTotals",
          "paging"
        ],
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "description": "A multi-dimensional array of computed results. The most common one being a 2-dimensional array. The arrays can be composed of Double or null values.",
            "example": [
              [
                1,
                2.5
              ],
              [
                -1.3,
                3.14
              ]
            ],
            "items": {
              "type": "object"
            }
          },
          "dimensionHeaders": {
            "type": "array",
            "description": "An array containing dimension headers. The size of the array corresponds to dimension size. Their order corresponds to the dimension order in the execution result spec.",
            "items": {
              "$ref": "#/components/schemas/DimensionHeader"
            }
          },
          "grandTotals": {
            "type": "array",
            "description": "An array with grand totals data corresponding to grand totals definition in result spec.",
            "items": {
              "$ref": "#/components/schemas/ExecutionResultGrandTotal"
            }
          },
          "paging": {
            "$ref": "#/components/schemas/ExecutionResultPaging"
          }
        },
        "description": "Contains the result of an AFM execution."
      },
      "ExecutionResultGrandTotal": {
        "required": [
          "data",
          "localIdentifier"
        ],
        "type": "object",
        "description": "Contains the data related to a grand total, including the reference to localIdentifier as specified in result spec.",
        "properties": {
          "data": {
            "type": "object"
          },
          "localIdentifier": {
            "type": "string"
          }
        }
      },
      "ExecutionResultHeader": {
        "type": "object",
        "description": "Abstract execution result header",
        "oneOf": [
          {
            "$ref": "#/components/schemas/AttributeExecutionResultHeader"
          },
          {
            "$ref": "#/components/schemas/MeasureExecutionResultHeader"
          }
        ]
      },
      "ExecutionResultPaging": {
        "required": [
          "count",
          "offset",
          "total"
        ],
        "type": "object",
        "properties": {
          "count": {
            "type": "array",
            "description": "A count of the returned results in every dimension.",
            "example": [
              2,
              2
            ],
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "offset": {
            "type": "array",
            "description": "The offset of the results returned in every dimension.",
            "example": [
              0,
              0
            ],
            "items": {
              "type": "integer",
              "format": "int32"
            }
          },
          "total": {
            "type": "array",
            "description": "A total count of the results in every dimension.",
            "example": [
              2,
              2
            ],
            "items": {
              "type": "integer",
              "format": "int32"
            }
          }
        },
        "description": "A paging information related to the data presented in the execution result. These paging information are multi-dimensional."
      },
      "HeaderGroup": {
        "required": [
          "headers"
        ],
        "type": "object",
        "properties": {
          "headers": {
            "type": "array",
            "description": "An array containing headers.",
            "items": {
              "$ref": "#/components/schemas/ExecutionResultHeader"
            }
          }
        },
        "description": "Contains the information specific for a group of headers. These groups correlate to attributes and measure groups."
      },
      "MeasureExecutionResultHeader": {
        "required": [
          "measureHeader"
        ],
        "type": "object",
        "properties": {
          "measureHeader": {
            "$ref": "#/components/schemas/MeasureResultHeader"
          }
        }
      },
      "MeasureResultHeader": {
        "required": [
          "measureIndex"
        ],
        "type": "object",
        "properties": {
          "measureIndex": {
            "type": "integer",
            "description": "Measure index. Starts at 0.",
            "format": "int32",
            "example": 0
          }
        },
        "description": "Header containing the information related to measures."
      },
      "ObjectLinks": {
        "required": [
          "self"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "string",
            "description": "A string containing the link's URL.",
            "format": "uri"
          }
        }
      },
      "ObjectLinksContainer": {
        "type": "object",
        "properties": {
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          }
        }
      },
      "ListLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          {
            "type": "object",
            "properties": {
              "next": {
                "type": "string",
                "description": "A string containing the link's URL for the next page of data.",
                "format": "uri"
              }
            }
          }
        ]
      },
      "JsonApiAnalyticalDashboardOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiAnalyticalDashboardOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiVisualizationObjectOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiLabelOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiMetricOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiFilterContextOutWithLinks"
                }
              ]
            }
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiAnalyticalDashboardOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "analyticalDashboard",
            "enum": [
              "analyticalDashboard"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "areRelationsValid": {
                "type": "boolean"
              },
              "content": {
                "type": "object",
                "description": "Free-form JSON content.",
                "example": {
                  "identifier": {
                    "id": "label.leaf",
                    "type": "label"
                  },
                  "someBoolProp": false
                }
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "visualizationObjects": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiVisualizationObjectToManyLinkage"
                  }
                }
              },
              "analyticalDashboards": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiAnalyticalDashboardToManyLinkage"
                  }
                }
              },
              "labels": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiLabelToManyLinkage"
                  }
                }
              },
              "metrics": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiMetricToManyLinkage"
                  }
                }
              },
              "datasets": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiDatasetToManyLinkage"
                  }
                }
              },
              "filterContexts": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiFilterContextToManyLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of analyticalDashboard entity."
      },
      "JsonApiAnalyticalDashboardLinkage": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "analyticalDashboard"
            ]
          }
        },
        "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members."
      },
      "JsonApiAnalyticalDashboardToManyLinkage": {
        "type": "array",
        "description": "References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "items": {
          "$ref": "#/components/schemas/JsonApiAnalyticalDashboardLinkage"
        }
      },
      "JsonApiDatasetLinkage": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "dataset"
            ]
          }
        },
        "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members."
      },
      "JsonApiDatasetToManyLinkage": {
        "type": "array",
        "description": "References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "items": {
          "$ref": "#/components/schemas/JsonApiDatasetLinkage"
        }
      },
      "JsonApiFilterContextLinkage": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "filterContext"
            ]
          }
        },
        "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members."
      },
      "JsonApiFilterContextToManyLinkage": {
        "type": "array",
        "description": "References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "items": {
          "$ref": "#/components/schemas/JsonApiFilterContextLinkage"
        }
      },
      "JsonApiLabelLinkage": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "label"
            ]
          }
        },
        "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members."
      },
      "JsonApiLabelToManyLinkage": {
        "type": "array",
        "description": "References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "items": {
          "$ref": "#/components/schemas/JsonApiLabelLinkage"
        }
      },
      "JsonApiMetricLinkage": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "metric"
            ]
          }
        },
        "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members."
      },
      "JsonApiMetricToManyLinkage": {
        "type": "array",
        "description": "References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "items": {
          "$ref": "#/components/schemas/JsonApiMetricLinkage"
        }
      },
      "JsonApiVisualizationObjectLinkage": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "visualizationObject"
            ]
          }
        },
        "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members."
      },
      "JsonApiVisualizationObjectToManyLinkage": {
        "type": "array",
        "description": "References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "items": {
          "$ref": "#/components/schemas/JsonApiVisualizationObjectLinkage"
        }
      },
      "JsonApiAttributeOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiAttributeOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiAttributeOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiLabelOutWithLinks"
                }
              ]
            }
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiAttributeOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "attribute",
            "enum": [
              "attribute"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "granularity": {
                "type": "string",
                "enum": [
                  "MINUTE",
                  "HOUR",
                  "DAY",
                  "WEEK",
                  "MONTH",
                  "QUARTER",
                  "YEAR",
                  "MINUTE_OF_HOUR",
                  "HOUR_OF_DAY",
                  "DAY_OF_WEEK",
                  "DAY_OF_MONTH",
                  "DAY_OF_YEAR",
                  "WEEK_OF_YEAR",
                  "MONTH_OF_YEAR",
                  "QUARTER_OF_YEAR"
                ]
              },
              "areRelationsValid": {
                "type": "boolean"
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "dataset": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiDatasetToOneLinkage"
                  }
                }
              },
              "labels": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiLabelToManyLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of attribute entity."
      },
      "JsonApiDatasetToOneLinkage": {
        "description": "References to other resource objects in a to-one (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "nullable": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/JsonApiDatasetLinkage"
          }
        ]
      },
      "JsonApiDatasetOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiDatasetOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiDatasetOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiFactOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks"
                }
              ]
            }
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiDatasetOut": {
        "required": [
          "attributes",
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "dataset",
            "enum": [
              "dataset"
            ]
          },
          "attributes": {
            "required": [
              "type"
            ],
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "type": {
                "type": "string",
                "enum": [
                  "NORMAL",
                  "DATE"
                ]
              },
              "grain": {
                "type": "array",
                "items": {
                  "required": [
                    "id",
                    "type"
                  ],
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "type": {
                      "type": "string",
                      "enum": [
                        "attribute",
                        "dataset"
                      ]
                    }
                  }
                }
              },
              "referenceProperties": {
                "type": "array",
                "items": {
                  "required": [
                    "identifier",
                    "multivalue",
                    "sourceColumns"
                  ],
                  "type": "object",
                  "properties": {
                    "identifier": {
                      "$ref": "#/components/schemas/DatasetReferenceIdentifier"
                    },
                    "multivalue": {
                      "type": "boolean"
                    },
                    "sourceColumns": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "dataSourceTableId": {
                "type": "string"
              },
              "areRelationsValid": {
                "type": "boolean"
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "attributes": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiAttributeToManyLinkage"
                  }
                }
              },
              "facts": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiFactToManyLinkage"
                  }
                }
              },
              "references": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiDatasetToManyLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of dataset entity."
      },
      "DatasetReferenceIdentifier": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "dataset"
            ]
          }
        }
      },
      "JsonApiAttributeLinkage": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "attribute"
            ]
          }
        },
        "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members."
      },
      "JsonApiAttributeToManyLinkage": {
        "type": "array",
        "description": "References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "items": {
          "$ref": "#/components/schemas/JsonApiAttributeLinkage"
        }
      },
      "JsonApiFactLinkage": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "fact"
            ]
          }
        },
        "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members."
      },
      "JsonApiFactToManyLinkage": {
        "type": "array",
        "description": "References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "items": {
          "$ref": "#/components/schemas/JsonApiFactLinkage"
        }
      },
      "JsonApiFactOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiFactOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiFactOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiFactOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks"
                }
              ]
            }
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiFactOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "fact",
            "enum": [
              "fact"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "sourceColumn": {
                "type": "string"
              },
              "areRelationsValid": {
                "type": "boolean"
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "dataset": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiDatasetToOneLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of fact entity."
      },
      "JsonApiFilterContextOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiFilterContextOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiFilterContextOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiFilterContextOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiLabelOutWithLinks"
                }
              ]
            }
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiFilterContextOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "filterContext",
            "enum": [
              "filterContext"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "areRelationsValid": {
                "type": "boolean"
              },
              "content": {
                "type": "object",
                "description": "Free-form JSON content.",
                "example": {
                  "identifier": {
                    "id": "label.leaf",
                    "type": "label"
                  },
                  "someBoolProp": false
                }
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "attributes": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiAttributeToManyLinkage"
                  }
                }
              },
              "datasets": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiDatasetToManyLinkage"
                  }
                }
              },
              "labels": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiLabelToManyLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of filterContext entity."
      },
      "JsonApiLabelOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiLabelOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiLabelOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiLabelOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks"
                }
              ]
            }
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiLabelOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "label",
            "enum": [
              "label"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "primary": {
                "type": "boolean"
              },
              "sourceColumn": {
                "type": "string"
              },
              "areRelationsValid": {
                "type": "boolean"
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "attribute": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiAttributeToOneLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of label entity."
      },
      "JsonApiAttributeToOneLinkage": {
        "description": "References to other resource objects in a to-one (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "nullable": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/JsonApiAttributeLinkage"
          }
        ]
      },
      "JsonApiMetricOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiMetricOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiMetricOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiMetricOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiFactOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiLabelOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiMetricOutWithLinks"
                }
              ]
            }
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiMetricOut": {
        "required": [
          "attributes",
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "metric",
            "enum": [
              "metric"
            ]
          },
          "attributes": {
            "required": [
              "content"
            ],
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "areRelationsValid": {
                "type": "boolean"
              },
              "content": {
                "required": [
                  "maql"
                ],
                "type": "object",
                "properties": {
                  "format": {
                    "type": "string"
                  },
                  "maql": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "facts": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiFactToManyLinkage"
                  }
                }
              },
              "attributes": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiAttributeToManyLinkage"
                  }
                }
              },
              "labels": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiLabelToManyLinkage"
                  }
                }
              },
              "metrics": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiMetricToManyLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of metric entity."
      },
      "JsonApiVisualizationObjectOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiVisualizationObjectOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiVisualizationObjectOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiVisualizationObjectOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiFactOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiLabelOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiMetricOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks"
                }
              ]
            }
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiVisualizationObjectOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "visualizationObject",
            "enum": [
              "visualizationObject"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "areRelationsValid": {
                "type": "boolean"
              },
              "content": {
                "type": "object",
                "description": "Free-form JSON content.",
                "example": {
                  "identifier": {
                    "id": "label.leaf",
                    "type": "label"
                  },
                  "someBoolProp": false
                }
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "facts": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiFactToManyLinkage"
                  }
                }
              },
              "attributes": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiAttributeToManyLinkage"
                  }
                }
              },
              "labels": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiLabelToManyLinkage"
                  }
                }
              },
              "metrics": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiMetricToManyLinkage"
                  }
                }
              },
              "datasets": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiDatasetToManyLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of visualizationObject entity."
      },
      "JsonApiWorkspaceDataFilterSettingOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterSettingOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiWorkspaceDataFilterSettingOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterSettingOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterOutWithLinks"
                }
              ]
            }
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiWorkspaceDataFilterSettingOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "workspaceDataFilterSetting",
            "enum": [
              "workspaceDataFilterSetting"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "filterValues": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "workspaceDataFilter": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterToOneLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of workspaceDataFilterSetting entity."
      },
      "JsonApiWorkspaceDataFilterLinkage": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "workspaceDataFilter"
            ]
          }
        },
        "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members."
      },
      "JsonApiWorkspaceDataFilterToOneLinkage": {
        "description": "References to other resource objects in a to-one (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "nullable": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterLinkage"
          }
        ]
      },
      "JsonApiWorkspaceDataFilterOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiWorkspaceDataFilterOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterSettingOutWithLinks"
                }
              ]
            }
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiWorkspaceDataFilterOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "workspaceDataFilter",
            "enum": [
              "workspaceDataFilter"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "columnName": {
                "type": "string"
              },
              "dataSourceId": {
                "type": "string"
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "filterSettings": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterSettingToManyLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of workspaceDataFilter entity."
      },
      "JsonApiWorkspaceDataFilterSettingLinkage": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "workspaceDataFilterSetting"
            ]
          }
        },
        "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members."
      },
      "JsonApiWorkspaceDataFilterSettingToManyLinkage": {
        "type": "array",
        "description": "References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "items": {
          "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterSettingLinkage"
        }
      },
      "JsonApiUserGroupLinkage": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "userGroup"
            ]
          }
        },
        "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members."
      },
      "JsonApiUserGroupToManyLinkage": {
        "type": "array",
        "description": "References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "items": {
          "$ref": "#/components/schemas/JsonApiUserGroupLinkage"
        }
      },
      "JsonApiUserLinkage": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "user"
            ]
          }
        },
        "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members."
      },
      "JsonApiUserToManyLinkage": {
        "type": "array",
        "description": "References to other resource objects in a to-many (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "items": {
          "$ref": "#/components/schemas/JsonApiUserLinkage"
        }
      },
      "JsonApiDataSourceOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiDataSourceOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          }
        }
      },
      "JsonApiDataSourceOut": {
        "required": [
          "attributes",
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "dataSource",
            "enum": [
              "dataSource"
            ]
          },
          "attributes": {
            "required": [
              "name",
              "schema",
              "type",
              "url"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "POSTGRESQL",
                  "REDSHIFT",
                  "VERTICA",
                  "SNOWFLAKE",
                  "ADS",
                  "BIGQUERY",
                  "MSSQL",
                  "PRESTO"
                ]
              },
              "url": {
                "type": "string"
              },
              "schema": {
                "type": "string"
              },
              "username": {
                "type": "string"
              }
            }
          }
        },
        "description": "JSON:API representation of dataSource entity."
      },
      "JsonApiUserGroupOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiUserGroupOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiUserGroupOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiUserGroupOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "userGroup",
            "enum": [
              "userGroup"
            ]
          },
          "attributes": {
            "type": "object"
          },
          "relationships": {
            "type": "object",
            "properties": {
              "parents": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiUserGroupToManyLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of userGroup entity."
      },
      "JsonApiUserOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiUserOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiUserGroupOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiUserOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "user",
            "enum": [
              "user"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "authenticationId": {
                "type": "string"
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "userGroups": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiUserGroupToManyLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of user entity."
      },
      "JsonApiWorkspaceOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiWorkspaceOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiWorkspaceOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiWorkspaceOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "workspace",
            "enum": [
              "workspace"
            ]
          },
          "meta": {
            "type": "object",
            "properties": {
              "config": {
                "required": [
                  "approximateCountAvailable",
                  "dataSamplingAvailable"
                ],
                "type": "object",
                "properties": {
                  "dataSamplingAvailable": {
                    "type": "boolean",
                    "description": "is sampling enabled - based on type of data-source connected to this workspace",
                    "default": false
                  },
                  "approximateCountAvailable": {
                    "type": "boolean",
                    "description": "is approximate count enabled - based on type of data-source connected to this workspace",
                    "default": false
                  }
                }
              }
            }
          },
          "attributes": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "parent": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiWorkspaceToOneLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of workspace entity."
      },
      "JsonApiWorkspaceLinkage": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "workspace"
            ]
          }
        },
        "description": "The \\\"type\\\" and \\\"id\\\" to non-empty members."
      },
      "JsonApiWorkspaceToOneLinkage": {
        "description": "References to other resource objects in a to-one (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "nullable": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/JsonApiWorkspaceLinkage"
          }
        ]
      },
      "JsonApiApiTokenOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiApiTokenOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiApiTokenOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiApiTokenOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiApiTokenOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "apiToken",
            "enum": [
              "apiToken"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "bearerToken": {
                "type": "string"
              }
            }
          }
        },
        "description": "JSON:API representation of apiToken entity."
      },
      "JsonApiApiTokenOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiApiTokenOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          }
        }
      },
      "JsonApiApiTokenInDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiApiTokenIn"
          }
        }
      },
      "JsonApiApiTokenIn": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "apiToken",
            "enum": [
              "apiToken"
            ]
          },
          "attributes": {
            "type": "object"
          }
        },
        "description": "JSON:API representation of apiToken entity."
      },
      "JsonApiAnalyticalDashboardOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiVisualizationObjectOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiAnalyticalDashboardOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiLabelOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiMetricOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiFilterContextOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiAttributeOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiAttributeOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiLabelOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiDatasetOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiDatasetOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiFactOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiFactOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiFactOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiFilterContextOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiFilterContextOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiLabelOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiLabelOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiLabelOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiMetricOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiMetricOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiFactOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiLabelOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiMetricOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiVisualizationObjectOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiVisualizationObjectOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiFactOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiAttributeOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiLabelOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiMetricOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiDatasetOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiWorkspaceDataFilterSettingOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterSettingOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiWorkspaceDataFilterOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterSettingOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiAnalyticalDashboardInDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiAnalyticalDashboardIn"
          }
        }
      },
      "JsonApiAnalyticalDashboardIn": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "analyticalDashboard",
            "enum": [
              "analyticalDashboard"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "areRelationsValid": {
                "type": "boolean"
              },
              "content": {
                "type": "object",
                "description": "Free-form JSON content.",
                "example": {
                  "identifier": {
                    "id": "label.leaf",
                    "type": "label"
                  },
                  "someBoolProp": false
                }
              }
            }
          }
        },
        "description": "JSON:API representation of analyticalDashboard entity."
      },
      "JsonApiFilterContextInDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiFilterContextIn"
          }
        }
      },
      "JsonApiFilterContextIn": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "filterContext",
            "enum": [
              "filterContext"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "areRelationsValid": {
                "type": "boolean"
              },
              "content": {
                "type": "object",
                "description": "Free-form JSON content.",
                "example": {
                  "identifier": {
                    "id": "label.leaf",
                    "type": "label"
                  },
                  "someBoolProp": false
                }
              }
            }
          }
        },
        "description": "JSON:API representation of filterContext entity."
      },
      "JsonApiMetricInDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiMetricIn"
          }
        }
      },
      "JsonApiMetricIn": {
        "required": [
          "attributes",
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "metric",
            "enum": [
              "metric"
            ]
          },
          "attributes": {
            "required": [
              "content"
            ],
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "areRelationsValid": {
                "type": "boolean"
              },
              "content": {
                "required": [
                  "maql"
                ],
                "type": "object",
                "properties": {
                  "format": {
                    "type": "string"
                  },
                  "maql": {
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of metric entity."
      },
      "JsonApiVisualizationObjectInDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiVisualizationObjectIn"
          }
        }
      },
      "JsonApiVisualizationObjectIn": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "visualizationObject",
            "enum": [
              "visualizationObject"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "tags": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "areRelationsValid": {
                "type": "boolean"
              },
              "content": {
                "type": "object",
                "description": "Free-form JSON content.",
                "example": {
                  "identifier": {
                    "id": "label.leaf",
                    "type": "label"
                  },
                  "someBoolProp": false
                }
              }
            }
          }
        },
        "description": "JSON:API representation of visualizationObject entity."
      },
      "JsonApiWorkspaceDataFilterInDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterIn"
          }
        }
      },
      "JsonApiWorkspaceDataFilterIn": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^([.A-Za-z0-9_-]{1,255}:)?[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "workspaceDataFilter",
            "enum": [
              "workspaceDataFilter"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "columnName": {
                "type": "string"
              },
              "dataSourceId": {
                "type": "string"
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "filterSettings": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiWorkspaceDataFilterSettingToManyLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of workspaceDataFilter entity."
      },
      "JsonApiDataSourceInDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiDataSourceIn"
          }
        }
      },
      "JsonApiDataSourceIn": {
        "required": [
          "attributes",
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "dataSource",
            "enum": [
              "dataSource"
            ]
          },
          "attributes": {
            "required": [
              "name",
              "schema",
              "type",
              "url"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "type": {
                "type": "string",
                "enum": [
                  "POSTGRESQL",
                  "REDSHIFT",
                  "VERTICA",
                  "SNOWFLAKE",
                  "ADS",
                  "BIGQUERY",
                  "MSSQL",
                  "PRESTO"
                ]
              },
              "url": {
                "type": "string"
              },
              "schema": {
                "type": "string"
              },
              "username": {
                "type": "string"
              },
              "password": {
                "type": "string"
              },
              "token": {
                "type": "string"
              }
            }
          }
        },
        "description": "JSON:API representation of dataSource entity."
      },
      "JsonApiUserGroupInDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiUserGroupIn"
          }
        }
      },
      "JsonApiUserGroupIn": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "userGroup",
            "enum": [
              "userGroup"
            ]
          },
          "attributes": {
            "type": "object"
          },
          "relationships": {
            "type": "object",
            "properties": {
              "parents": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiUserGroupToManyLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of userGroup entity."
      },
      "JsonApiUserInDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiUserIn"
          }
        }
      },
      "JsonApiUserIn": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "user",
            "enum": [
              "user"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "authenticationId": {
                "type": "string"
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "userGroups": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiUserGroupToManyLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of user entity."
      },
      "JsonApiWorkspaceInDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiWorkspaceIn"
          }
        }
      },
      "JsonApiWorkspaceIn": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "workspace",
            "enum": [
              "workspace"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "parent": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiWorkspaceToOneLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of workspace entity."
      },
      "JsonApiDataSourceOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiDataSourceOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiDataSourceOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiDataSourceOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiUserGroupOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiUserGroupOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiUserGroupOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiUserGroupOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiUserGroupOutWithLinks"
                }
              ]
            }
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiUserOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiUserOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiUserOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiUserOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiUserGroupOutWithLinks"
                }
              ]
            }
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiWorkspaceOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiWorkspaceOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiWorkspaceOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiWorkspaceOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiWorkspaceOutWithLinks"
                }
              ]
            }
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiDataSourceTableOutWithLinks": {
        "allOf": [
          {
            "$ref": "#/components/schemas/JsonApiDataSourceTableOut"
          },
          {
            "$ref": "#/components/schemas/ObjectLinksContainer"
          }
        ]
      },
      "JsonApiDataSourceTableOutList": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JsonApiDataSourceTableOutWithLinks"
            }
          },
          "links": {
            "$ref": "#/components/schemas/ListLinks"
          }
        },
        "description": "A JSON:API document with a list of resources"
      },
      "JsonApiDataSourceTableOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "dataSourceTable",
            "enum": [
              "dataSourceTable"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "path": {
                "type": "array",
                "description": "Path to table.",
                "example": [
                  "table_schema",
                  "table_name"
                ],
                "items": {
                  "type": "string",
                  "example": "table_name"
                }
              },
              "columns": {
                "type": "array",
                "items": {
                  "required": [
                    "dataType",
                    "name"
                  ],
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "dataType": {
                      "type": "string",
                      "enum": [
                        "INT",
                        "STRING",
                        "DATE",
                        "NUMERIC",
                        "TIMESTAMP",
                        "BOOLEAN"
                      ]
                    },
                    "isPrimaryKey": {
                      "type": "boolean"
                    },
                    "referencedTableId": {
                      "type": "string"
                    },
                    "referencedTableColumn": {
                      "type": "string"
                    }
                  },
                  "description": "Table columns in data source"
                }
              }
            }
          }
        },
        "description": "Tables in data source"
      },
      "JsonApiCookieSecurityConfigurationOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          }
        }
      },
      "JsonApiCookieSecurityConfigurationOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "cookieSecurityConfiguration",
            "enum": [
              "cookieSecurityConfiguration"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "lastRotation": {
                "type": "string",
                "format": "date-time"
              },
              "rotationInterval": {
                "type": "string",
                "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration",
                "example": "P30D"
              }
            }
          }
        },
        "description": "JSON:API representation of cookieSecurityConfiguration entity."
      },
      "JsonApiOrganizationOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiOrganizationOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          },
          "included": {
            "uniqueItems": true,
            "type": "array",
            "description": "Included resources",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/JsonApiUserOutWithLinks"
                },
                {
                  "$ref": "#/components/schemas/JsonApiUserGroupOutWithLinks"
                }
              ]
            }
          }
        }
      },
      "JsonApiOrganizationOut": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "organization",
            "enum": [
              "organization"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "hostname": {
                "type": "string"
              },
              "oauthIssuerLocation": {
                "type": "string"
              },
              "oauthClientId": {
                "type": "string"
              }
            }
          },
          "relationships": {
            "type": "object",
            "properties": {
              "bootstrapUser": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiUserToOneLinkage"
                  }
                }
              },
              "bootstrapUserGroup": {
                "required": [
                  "data"
                ],
                "type": "object",
                "properties": {
                  "data": {
                    "$ref": "#/components/schemas/JsonApiUserGroupToOneLinkage"
                  }
                }
              }
            }
          }
        },
        "description": "JSON:API representation of organization entity."
      },
      "JsonApiUserGroupToOneLinkage": {
        "description": "References to other resource objects in a to-one (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "nullable": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/JsonApiUserGroupLinkage"
          }
        ]
      },
      "JsonApiUserToOneLinkage": {
        "description": "References to other resource objects in a to-one (\\\"relationship\\\"). Relationships can be specified by including a member in a resource's links object.",
        "nullable": true,
        "oneOf": [
          {
            "$ref": "#/components/schemas/JsonApiUserLinkage"
          }
        ]
      },
      "JsonApiDataSourceTableOutDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiDataSourceTableOut"
          },
          "links": {
            "$ref": "#/components/schemas/ObjectLinks"
          }
        }
      },
      "JsonApiCookieSecurityConfigurationInDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiCookieSecurityConfigurationIn"
          }
        }
      },
      "JsonApiCookieSecurityConfigurationIn": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "cookieSecurityConfiguration",
            "enum": [
              "cookieSecurityConfiguration"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "lastRotation": {
                "type": "string",
                "format": "date-time"
              },
              "rotationInterval": {
                "type": "string",
                "description": "Length of interval between automatic rotations expressed in format of ISO 8601 duration",
                "example": "P30D"
              }
            }
          }
        },
        "description": "JSON:API representation of cookieSecurityConfiguration entity."
      },
      "JsonApiOrganizationInDocument": {
        "required": [
          "data"
        ],
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/JsonApiOrganizationIn"
          }
        }
      },
      "JsonApiOrganizationIn": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "pattern": "^[.A-Za-z0-9_-]{1,255}$",
            "type": "string",
            "description": "API identifier of an object",
            "example": "id1"
          },
          "type": {
            "type": "string",
            "description": "Object type",
            "example": "organization",
            "enum": [
              "organization"
            ]
          },
          "attributes": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "hostname": {
                "type": "string"
              },
              "oauthIssuerLocation": {
                "type": "string"
              },
              "oauthClientId": {
                "type": "string"
              },
              "oauthClientSecret": {
                "type": "string"
              }
            }
          }
        },
        "description": "JSON:API representation of organization entity."
      },
      "DataSourceTableIdentifier": {
        "required": [
          "dataSourceId",
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "ID of table.",
            "example": "customers"
          },
          "dataSourceId": {
            "type": "string",
            "description": "Data source ID.",
            "example": "my-postgres"
          },
          "type": {
            "type": "string",
            "description": "Data source entity type.",
            "example": "dataSource",
            "enum": [
              "dataSource"
            ]
          }
        },
        "description": "An id of the table from PDM mapped to this dataset. Including ID of data source.",
        "example": {
          "id": "customers",
          "dataSourceId": "my-postgres",
          "type": "DATA_SOURCE"
        }
      },
      "DeclarativeAnalyticalDashboard": {
        "required": [
          "content",
          "id",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Analytical dashboard ID.",
            "example": "revenues-analysis"
          },
          "title": {
            "type": "string",
            "description": "Analytical dashboard title.",
            "example": "Revenues analysis"
          },
          "description": {
            "type": "string",
            "description": "Analytical dashboard description.",
            "example": "Period to period comparison of revenues in main sectors."
          },
          "content": {
            "$ref": "#/components/schemas/JsonNode"
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of tags.",
            "example": [
              "Revenues"
            ],
            "items": {
              "type": "string",
              "description": "A list of tags.",
              "example": "[\"Revenues\"]"
            }
          }
        }
      },
      "DeclarativeAnalyticsLayer": {
        "required": [
          "analyticalDashboards",
          "filterContexts",
          "metrics",
          "visualizationObjects"
        ],
        "type": "object",
        "properties": {
          "analyticalDashboards": {
            "type": "array",
            "description": "A list of analytical dashboards available in the model.",
            "items": {
              "$ref": "#/components/schemas/DeclarativeAnalyticalDashboard"
            }
          },
          "filterContexts": {
            "type": "array",
            "description": "A list of filter contexts available in the model.",
            "items": {
              "$ref": "#/components/schemas/DeclarativeFilterContext"
            }
          },
          "metrics": {
            "type": "array",
            "description": "A list of metrics available in the model.",
            "items": {
              "$ref": "#/components/schemas/DeclarativeMetric"
            }
          },
          "visualizationObjects": {
            "type": "array",
            "description": "A list of visualization objects available in the model.",
            "items": {
              "$ref": "#/components/schemas/DeclarativeVisualizationObject"
            }
          }
        }
      },
      "DeclarativeAttribute": {
        "required": [
          "id",
          "labels",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Attribute ID.",
            "example": "attr.customers.customer_name"
          },
          "title": {
            "type": "string",
            "description": "Attribute title.",
            "example": "Customer name"
          },
          "description": {
            "type": "string",
            "description": "Attribute description.",
            "example": "Customer name including first and last name."
          },
          "labels": {
            "type": "array",
            "description": "An array of attribute labels.",
            "items": {
              "$ref": "#/components/schemas/DeclarativeLabel"
            }
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of tags.",
            "example": [
              "Customers"
            ],
            "items": {
              "type": "string",
              "description": "A list of tags.",
              "example": "[\"Customers\"]"
            }
          }
        },
        "description": "A dataset attribute."
      },
      "DeclarativeDataset": {
        "required": [
          "attributes",
          "facts",
          "grain",
          "id",
          "references",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The Dataset ID. This ID is further used to refer to this instance of dataset.",
            "example": "customers"
          },
          "title": {
            "type": "string",
            "description": "A dataset title.",
            "example": "Customers"
          },
          "description": {
            "type": "string",
            "description": "A dataset description.",
            "example": "The customers of ours."
          },
          "grain": {
            "type": "array",
            "description": "An array of grain identifiers.",
            "items": {
              "$ref": "#/components/schemas/GrainIdentifier"
            }
          },
          "attributes": {
            "type": "array",
            "description": "An array of attributes.",
            "items": {
              "$ref": "#/components/schemas/DeclarativeAttribute"
            }
          },
          "facts": {
            "type": "array",
            "description": "An array of facts.",
            "items": {
              "$ref": "#/components/schemas/DeclarativeFact"
            }
          },
          "references": {
            "type": "array",
            "description": "An array of references.",
            "items": {
              "$ref": "#/components/schemas/DeclarativeReference"
            }
          },
          "dataSourceTableId": {
            "$ref": "#/components/schemas/DataSourceTableIdentifier"
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of tags.",
            "example": [
              "Customers"
            ],
            "items": {
              "type": "string",
              "description": "A list of tags.",
              "example": "[\"Customers\"]"
            }
          }
        },
        "description": "A dataset defined by its properties."
      },
      "DeclarativeDateDataset": {
        "required": [
          "granularities",
          "granularitiesFormatting",
          "id",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Date dataset ID.",
            "example": "date"
          },
          "title": {
            "type": "string",
            "description": "Date dataset title.",
            "example": "Date"
          },
          "description": {
            "type": "string",
            "description": "Date dataset description.",
            "example": "A customer order date"
          },
          "granularitiesFormatting": {
            "$ref": "#/components/schemas/GranularitiesFormatting"
          },
          "granularities": {
            "type": "array",
            "description": "An array of date granularities. All listed granularities will be available for date dataset.",
            "items": {
              "type": "string",
              "enum": [
                "MINUTE",
                "HOUR",
                "DAY",
                "WEEK",
                "MONTH",
                "QUARTER",
                "YEAR",
                "MINUTE_OF_HOUR",
                "HOUR_OF_DAY",
                "DAY_OF_WEEK",
                "DAY_OF_MONTH",
                "DAY_OF_YEAR",
                "WEEK_OF_YEAR",
                "MONTH_OF_YEAR",
                "QUARTER_OF_YEAR"
              ]
            }
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of tags.",
            "example": [
              "Customer dates"
            ],
            "items": {
              "type": "string",
              "description": "A list of tags.",
              "example": "[\"Customer dates\"]"
            }
          }
        },
        "description": "A date dataset."
      },
      "DeclarativeFact": {
        "required": [
          "id",
          "sourceColumn",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Fact ID.",
            "example": "fact.customer_order_count"
          },
          "title": {
            "type": "string",
            "description": "Fact title.",
            "example": "Customer order count"
          },
          "description": {
            "type": "string",
            "description": "Fact description.",
            "example": "A number of orders created by the customer - including all orders, even the non-delivered ones."
          },
          "sourceColumn": {
            "type": "string",
            "description": "A name of the source column in the table.",
            "example": "customer_order_count"
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of tags.",
            "example": [
              "Customers"
            ],
            "items": {
              "type": "string",
              "description": "A list of tags.",
              "example": "[\"Customers\"]"
            }
          }
        },
        "description": "A dataset fact."
      },
      "DeclarativeFilterContext": {
        "required": [
          "content",
          "id",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Filter Context ID.",
            "example": "filter-sales"
          },
          "title": {
            "type": "string",
            "description": "Filter Context title.",
            "example": "Filter Context for Sales team"
          },
          "description": {
            "type": "string",
            "description": "Filter Context description.",
            "example": "Filter Context for Sales team."
          },
          "content": {
            "$ref": "#/components/schemas/JsonNode"
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of tags.",
            "example": [
              "Revenues"
            ],
            "items": {
              "type": "string",
              "description": "A list of tags.",
              "example": "[\"Revenues\"]"
            }
          }
        }
      },
      "DeclarativeLabel": {
        "required": [
          "id",
          "primary",
          "sourceColumn",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Label ID.",
            "example": "label.customer_name"
          },
          "title": {
            "type": "string",
            "description": "Label title.",
            "example": "Customer name"
          },
          "description": {
            "type": "string",
            "description": "Label description.",
            "example": "Customer name"
          },
          "primary": {
            "type": "boolean",
            "description": "A flag indicating whether the label should be treated as a primary one.",
            "example": false
          },
          "sourceColumn": {
            "type": "string",
            "description": "A name of the source column in the table.",
            "example": "customer_name"
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of tags.",
            "example": [
              "Customers"
            ],
            "items": {
              "type": "string",
              "description": "A list of tags.",
              "example": "[\"Customers\"]"
            }
          }
        },
        "description": "A attribute label."
      },
      "DeclarativeLdm": {
        "required": [
          "datasets",
          "dateInstances"
        ],
        "type": "object",
        "properties": {
          "datasets": {
            "type": "array",
            "description": "An array containing datasets.",
            "items": {
              "$ref": "#/components/schemas/DeclarativeDataset"
            }
          },
          "dateInstances": {
            "type": "array",
            "description": "An array containing date-related datasets.",
            "items": {
              "$ref": "#/components/schemas/DeclarativeDateDataset"
            }
          }
        },
        "description": "A logical data model (LDM) representation."
      },
      "DeclarativeMetric": {
        "required": [
          "content",
          "id",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Metric ID.",
            "example": "total-sales"
          },
          "title": {
            "type": "string",
            "description": "Metric title.",
            "example": "Total sales"
          },
          "description": {
            "type": "string",
            "description": "Metric description.",
            "example": "Sales for all the data available."
          },
          "content": {
            "$ref": "#/components/schemas/JsonNode"
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of tags.",
            "example": [
              "Revenues"
            ],
            "items": {
              "type": "string",
              "description": "A list of tags.",
              "example": "[\"Revenues\"]"
            }
          }
        }
      },
      "DeclarativeReference": {
        "required": [
          "identifier",
          "multivalue",
          "sourceColumns"
        ],
        "type": "object",
        "properties": {
          "identifier": {
            "$ref": "#/components/schemas/ReferenceIdentifier"
          },
          "multivalue": {
            "type": "boolean",
            "description": "The multi-value flag enables many-to-many cardinality for references.",
            "example": false
          },
          "sourceColumns": {
            "type": "array",
            "description": "An array of source column names for a given reference.",
            "example": [
              "customer_id"
            ],
            "items": {
              "type": "string"
            }
          }
        },
        "description": "A dataset reference."
      },
      "DeclarativeVisualizationObject": {
        "required": [
          "content",
          "id",
          "title"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Visualization object ID.",
            "example": "visualization-1"
          },
          "title": {
            "type": "string",
            "description": "Visualization object title.",
            "example": "Count of goods"
          },
          "description": {
            "type": "string",
            "description": "Visualization object description.",
            "example": "Simple number for total goods in current production."
          },
          "content": {
            "$ref": "#/components/schemas/JsonNode"
          },
          "tags": {
            "uniqueItems": true,
            "type": "array",
            "description": "A list of tags.",
            "example": [
              "Revenues"
            ],
            "items": {
              "type": "string",
              "description": "A list of tags.",
              "example": "[\"Revenues\"]"
            }
          }
        }
      },
      "DeclarativeWorkspace": {
        "required": [
          "id",
          "model",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier of a workspace",
            "example": "alpha.sales"
          },
          "name": {
            "type": "string",
            "description": "Name of a workspace to view.",
            "example": "Alpha Sales"
          },
          "model": {
            "$ref": "#/components/schemas/DeclarativeWorkspaceModel"
          },
          "parent": {
            "$ref": "#/components/schemas/WorkspaceIdentifier"
          }
        },
        "description": "A declarative form of a particular workspace."
      },
      "DeclarativeWorkspaceDataFilter": {
        "required": [
          "columnName",
          "dataSourceId",
          "id",
          "title",
          "workspaceDataFilterSettings"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Workspace Data Filters ID. This ID is further used to refer to this instance.",
            "example": "country_id"
          },
          "title": {
            "type": "string",
            "description": "Workspace Data Filters title.",
            "example": "Country ID"
          },
          "description": {
            "type": "string",
            "description": "Workspace Data Filters description.",
            "example": "ID of country"
          },
          "columnName": {
            "type": "string",
            "description": "Workspace Data Filters column name. Data are filtered using this physical column.",
            "example": "country_id"
          },
          "dataSourceId": {
            "type": "string",
            "description": "Data source ID. Workspace Data Filters must always be connected to single data source.",
            "example": "sampleDataSource"
          },
          "workspaceDataFilterSettings": {
            "type": "array",
            "description": "Filter settings specifying values of filters valid for the workspace.",
            "items": {
              "$ref": "#/components/schemas/DeclarativeWorkspaceDataFilterSetting"
            }
          },
          "workspace": {
            "$ref": "#/components/schemas/WorkspaceIdentifier"
          }
        },
        "description": "Workspace Data Filters serving the filtering of what data users can see in workspaces."
      },
      "DeclarativeWorkspaceDataFilterSetting": {
        "required": [
          "filterValues",
          "id",
          "title",
          "workspace"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Workspace Data Filters ID. This ID is further used to refer to this instance.",
            "example": "country_id_setting"
          },
          "title": {
            "type": "string",
            "description": "Workspace Data Filters setting title.",
            "example": "Country ID setting"
          },
          "description": {
            "type": "string",
            "description": "Workspace Data Filters setting description.",
            "example": "ID of country setting"
          },
          "filterValues": {
            "type": "array",
            "description": "Only those rows are returned, where columnName from filter matches those values.",
            "example": [
              "US"
            ],
            "items": {
              "type": "string",
              "description": "Only those rows are returned, where columnName from filter matches those values.",
              "example": "[\"US\"]"
            }
          },
          "workspace": {
            "$ref": "#/components/schemas/WorkspaceIdentifier"
          }
        },
        "description": "Workspace Data Filters serving the filtering of what data users can see in workspaces."
      },
      "DeclarativeWorkspaceModel": {
        "required": [
          "analytics",
          "ldm"
        ],
        "type": "object",
        "properties": {
          "ldm": {
            "$ref": "#/components/schemas/DeclarativeLdm"
          },
          "analytics": {
            "$ref": "#/components/schemas/DeclarativeAnalyticsLayer"
          }
        },
        "description": "A declarative form of a model and analytics for a workspace."
      },
      "DeclarativeWorkspaces": {
        "required": [
          "workspaceDataFilters",
          "workspaces"
        ],
        "type": "object",
        "properties": {
          "workspaces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeclarativeWorkspace"
            }
          },
          "workspaceDataFilters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeclarativeWorkspaceDataFilter"
            }
          }
        },
        "description": "A declarative form of a all workspace layout."
      },
      "GrainIdentifier": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Grain ID.",
            "example": "attr.customers.customer_name"
          },
          "type": {
            "type": "string",
            "description": "A type of the grain.",
            "example": "ATTRIBUTE",
            "enum": [
              "attribute",
              "dataset"
            ]
          }
        },
        "description": "A grain identifier."
      },
      "GranularitiesFormatting": {
        "required": [
          "titleBase",
          "titlePattern"
        ],
        "type": "object",
        "properties": {
          "titleBase": {
            "type": "string",
            "description": "Title base is used as a token in title pattern. If left empty, it is replaced by date dataset title."
          },
          "titlePattern": {
            "type": "string",
            "description": "This pattern is used to generate the title of attributes and labels that result from the granularities.\nThere are two tokens available: \n* `%titleBase` - represents shared part by all titles, or title of Date Dataset if left empty\n* `%granularityTitle` - represents `DateGranularity` built-in title",
            "example": "%titleBase - %granularityTitle"
          }
        },
        "description": "A date dataset granularities title formatting rules."
      },
      "JsonNode": {
        "type": "object",
        "description": "A server agnostic definition of the visualization object in JSON format.",
        "example": {}
      },
      "ReferenceIdentifier": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Reference ID.",
            "example": "customers"
          },
          "type": {
            "type": "string",
            "description": "A type of the reference.",
            "example": "DATASET",
            "enum": [
              "dataset"
            ]
          }
        },
        "description": "A reference identifier."
      },
      "WorkspaceIdentifier": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier of the workspace.",
            "example": "alpha.sales"
          },
          "type": {
            "type": "string",
            "description": "A type.",
            "example": "workspace",
            "enum": [
              "workspace"
            ]
          }
        },
        "description": "A workspace identifier.",
        "example": "{ id: demo, type: workspace }"
      },
      "DeclarativeModel": {
        "required": [
          "ldm"
        ],
        "type": "object",
        "properties": {
          "ldm": {
            "$ref": "#/components/schemas/DeclarativeLdm"
          }
        },
        "description": "A data model structured as a set of its attributes."
      },
      "DeclarativeAnalytics": {
        "required": [
          "analytics"
        ],
        "type": "object",
        "properties": {
          "analytics": {
            "$ref": "#/components/schemas/DeclarativeAnalyticsLayer"
          }
        },
        "description": "Entities describing users' view on data."
      },
      "DeclarativeWorkspaceDataFilters": {
        "required": [
          "workspaceDataFilters"
        ],
        "type": "object",
        "properties": {
          "workspaceDataFilters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeclarativeWorkspaceDataFilter"
            }
          }
        }
      },
      "DeclarativeUser": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "User identifier.",
            "example": "employee123"
          },
          "authId": {
            "type": "string",
            "description": "User identification in the authentication manager."
          },
          "userGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserGroupIdentifier"
            }
          }
        },
        "description": "A user and its properties"
      },
      "DeclarativeUsers": {
        "required": [
          "users"
        ],
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeclarativeUser"
            }
          }
        },
        "description": "Declarative form of users and its properties."
      },
      "UserGroupIdentifier": {
        "required": [
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier of the user group.",
            "example": "group.admins"
          },
          "type": {
            "type": "string",
            "description": "A type.",
            "example": "userGroup",
            "enum": [
              "userGroup"
            ]
          }
        },
        "description": "A user group identifier."
      },
      "DeclarativeUserGroup": {
        "required": [
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "UserGroup identifier.",
            "example": "employees.all"
          },
          "parents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserGroupIdentifier"
            }
          }
        },
        "description": "A user-group and its properties"
      },
      "DeclarativeUserGroups": {
        "required": [
          "userGroups"
        ],
        "type": "object",
        "properties": {
          "userGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeclarativeUserGroup"
            }
          }
        },
        "description": "Declarative form of userGroups and its properties."
      },
      "DeclarativeDataSource": {
        "required": [
          "id",
          "name",
          "pdm",
          "schema",
          "type",
          "url"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Data source ID.",
            "example": "pg_local_docker-demo"
          },
          "name": {
            "type": "string",
            "description": "Name of the data source.",
            "example": "postgres demo"
          },
          "type": {
            "type": "string",
            "description": "Type of database.",
            "example": "POSTGRESQL",
            "enum": [
              "POSTGRESQL",
              "REDSHIFT",
              "VERTICA",
              "SNOWFLAKE",
              "ADS",
              "BIGQUERY",
              "MSSQL",
              "PRESTO"
            ]
          },
          "url": {
            "type": "string",
            "description": "An connection string relevant to type of database.",
            "example": "jdbc:postgresql://postgres:5432/gooddata"
          },
          "schema": {
            "type": "string",
            "description": "A scheme/database with the data.",
            "example": "demo"
          },
          "username": {
            "type": "string",
            "description": "User with permission connect the data source/database.",
            "example": "demo"
          },
          "password": {
            "type": "string",
            "description": "Password for the data-source user, property is never returned back.",
            "example": "*****"
          },
          "token": {
            "type": "string",
            "description": "Token as an alternative to username and password.",
            "example": "Bigquery service account JSON. Encode it using base64!"
          },
          "pdm": {
            "$ref": "#/components/schemas/DeclarativeTables"
          }
        },
        "description": "A data source and its properties."
      },
      "DeclarativeDataSources": {
        "required": [
          "dataSources"
        ],
        "type": "object",
        "properties": {
          "dataSources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeclarativeDataSource"
            }
          }
        },
        "description": "A data source and its properties."
      },
      "DeclarativeOrganization": {
        "required": [
          "dataSources",
          "organization",
          "userGroups",
          "users",
          "workspaceDataFilters",
          "workspaces"
        ],
        "type": "object",
        "properties": {
          "organization": {
            "$ref": "#/components/schemas/DeclarativeOrganizationInfo"
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeclarativeUser"
            }
          },
          "userGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeclarativeUserGroup"
            }
          },
          "dataSources": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeclarativeDataSource"
            }
          },
          "workspaces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeclarativeWorkspace"
            }
          },
          "workspaceDataFilters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DeclarativeWorkspaceDataFilter"
            }
          }
        },
        "description": "Complete definition of an organization in a declarative form."
      },
      "DeclarativeOrganizationInfo": {
        "required": [
          "hostname",
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier of the organization.",
            "example": "Alpha corporation"
          },
          "name": {
            "type": "string",
            "description": "Formal name of the organization.",
            "example": "Alpha corporation"
          },
          "hostname": {
            "type": "string",
            "description": "Formal hostname used in deployment.",
            "example": "alpha.com"
          },
          "oauthIssuerLocation": {
            "type": "string",
            "description": "URI of the authentication provider."
          },
          "oauthClientId": {
            "type": "string",
            "description": "Identifier of the authentication provider"
          },
          "oauthClientSecret": {
            "type": "string",
            "description": "Communication secret of the authentication provider (never returned back)."
          }
        },
        "description": "Information available about an organization."
      },
      "DeclarativePdm": {
        "required": [
          "pdm"
        ],
        "type": "object",
        "properties": {
          "pdm": {
            "$ref": "#/components/schemas/DeclarativeTables"
          }
        },
        "description": "A physical data model (PDM) representation for single data source."
      },
      "GenerateLdmRequest": {
        "required": [
          "separator"
        ],
        "type": "object",
        "properties": {
          "separator": {
            "type": "string",
            "description": "A separator between prefixes and the names. Default is \"__\".",
            "example": "__"
          },
          "tablePrefix": {
            "type": "string",
            "description": "Tables starting with this prefix will be included. The prefix is then followed by the value of `separator` parameter. Given the table prefix is `out_table` and separator is `__`, the table with name like `out_table__customers` will be scanned.",
            "example": "out_table"
          },
          "viewPrefix": {
            "type": "string",
            "description": "Views starting with this prefix will be included. The prefix is then followed by the value of `separator` parameter. Given the view prefix is `out_view` and separator is `__`, the table with name like `out_view__us_customers` will be scanned.",
            "example": "out_view"
          },
          "primaryLabelPrefix": {
            "type": "string",
            "description": "Columns starting with this prefix will be considered as primary labels. The prefix is then followed by the value of `separator` parameter. Given the primary label prefix is `pl` and separator is `__`, the columns with name like `pl__country_id` will be considered as primary labels.",
            "example": "pl"
          },
          "secondaryLabelPrefix": {
            "type": "string",
            "description": "Columns starting with this prefix will be considered as secondary labels. The prefix is then followed by the value of `separator` parameter. Given the secondary label prefix is `sl` and separator is `__`, the columns with name like `sl__country_id_country_name` will be considered as secondary labels.",
            "example": "sl"
          },
          "factPrefix": {
            "type": "string",
            "description": "Columns starting with this prefix will be considered as facts. The prefix is then followed by the value of `separator` parameter. Given the fact prefix is `f` and separator is `__`, the columns with name like `f__sold` will be considered as facts.",
            "example": "f"
          },
          "dateGranularities": {
            "type": "string",
            "description": "Option to control date granularities for date datasets. Empty value enables common date granularities (DAY, WEEK, MONTH, QUARTER, YEAR). Default value is `all` which enables all available date granularities, including time granularities (like hours, minutes).",
            "example": "all"
          },
          "grainPrefix": {
            "type": "string",
            "description": "Columns starting with this prefix will be considered as grains. The prefix is then followed by the value of `separator` parameter. Given the grain prefix is `g` and separator is `__`, the columns with name like `g__name` will be considered as grains.",
            "example": "g"
          },
          "referencePrefix": {
            "type": "string",
            "description": "Columns starting with this prefix will be considered as references. The prefix is then followed by the value of `separator` parameter. Given the reference prefix is `r` and separator is `__`, the columns with name like `r__customer_name` will be considered as references.",
            "example": "r"
          },
          "grainReferencePrefix": {
            "type": "string",
            "description": "Columns starting with this prefix will be considered as grain references. The prefix is then followed by the value of `separator` parameter. Given the reference prefix is `gr` and separator is `__`, the columns with name like `gr__customer_name` will be considered as grain references.",
            "example": "gr"
          },
          "denormPrefix": {
            "type": "string",
            "description": "Columns starting with this prefix will be considered as denormalization references. The prefix is then followed by the value of `separator` parameter. Given the denormalization reference prefix is `dr` and separator is `__`, the columns with name like `dr__customer_name` will be considered as denormalization references.",
            "example": "dr"
          },
          "wdfPrefix": {
            "type": "string",
            "description": "Column serving as workspace data filter. No labels are auto generated for such columns.",
            "example": "wdf"
          }
        },
        "description": "A request containing all information needed for generation of logical model."
      },
      "TestRequest": {
        "type": "object",
        "description": "A request containing all information for testing existing data source."
      },
      "TestResponse": {
        "required": [
          "successful"
        ],
        "type": "object",
        "properties": {
          "successful": {
            "type": "boolean",
            "description": "A flag indicating whether test passed or not.",
            "example": true
          },
          "error": {
            "type": "string",
            "description": "Field containing more details in case of failure.",
            "example": "Connection exception: Failed to initialize pool: FATAL: password authentication failed for user \"user\""
          }
        },
        "description": "Response from data source testing."
      },
      "ScanRequest": {
        "required": [
          "scanTables",
          "scanViews",
          "separator"
        ],
        "type": "object",
        "properties": {
          "separator": {
            "type": "string",
            "description": "A separator between prefixes and the names.",
            "example": "__"
          },
          "scanTables": {
            "type": "boolean",
            "description": "A flag indicating whether the tables should be scanned.",
            "example": true
          },
          "scanViews": {
            "type": "boolean",
            "description": "A flag indicating whether the views should be scanned.",
            "example": true
          },
          "tablePrefix": {
            "type": "string",
            "description": "Tables starting with this prefix will be scanned. The prefix is then followed by the value of `separator` parameter. Given the table prefix is `out_table` and separator is `__`, the table with name like `out_table__customers` will be scanned.",
            "example": "out_table"
          },
          "viewPrefix": {
            "type": "string",
            "description": "Views starting with this prefix will be scanned. The prefix is then followed by the value of `separator` parameter. Given the view prefix is `out_view` and separator is `__`, the table with name like `out_view__us_customers` will be scanned.",
            "example": "out_view"
          }
        },
        "description": "A request containing all information critical to model scanning."
      },
      "ColumnWarning": {
        "required": [
          "message",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "array",
            "description": "Column name.",
            "items": {
              "type": "string"
            }
          },
          "message": {
            "type": "array",
            "description": "Warning message related to the column.",
            "items": {
              "type": "string"
            }
          }
        },
        "description": "Warning related to single column."
      },
      "DeclarativeColumn": {
        "required": [
          "dataType",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Column name",
            "example": "customer_id"
          },
          "dataType": {
            "type": "string",
            "description": "Column type",
            "example": "INT",
            "enum": [
              "INT",
              "STRING",
              "DATE",
              "NUMERIC",
              "TIMESTAMP",
              "BOOLEAN"
            ]
          },
          "isPrimaryKey": {
            "type": "boolean",
            "description": "Is column part of primary key?"
          },
          "referencedTableId": {
            "type": "string",
            "description": "Referenced table (Foreign key)",
            "example": "customers"
          },
          "referencedTableColumn": {
            "type": "string",
            "description": "Referenced table (Foreign key)",
            "example": "customer_id"
          }
        },
        "description": "A table column."
      },
      "DeclarativeTable": {
        "required": [
          "columns",
          "id",
          "path",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Table id.",
            "example": "customers"
          },
          "path": {
            "type": "array",
            "description": "Path to table.",
            "example": [
              "table_schema",
              "table_name"
            ],
            "items": {
              "type": "string",
              "example": "table_name"
            }
          },
          "type": {
            "type": "string",
            "description": "Table type: TABLE or VIEW.",
            "example": "VIEW"
          },
          "columns": {
            "type": "array",
            "description": "An array of physical columns",
            "items": {
              "$ref": "#/components/schemas/DeclarativeColumn"
            }
          }
        },
        "description": "A database table."
      },
      "DeclarativeTables": {
        "required": [
          "tables"
        ],
        "type": "object",
        "properties": {
          "tables": {
            "type": "array",
            "description": "An array of physical database tables.",
            "items": {
              "$ref": "#/components/schemas/DeclarativeTable"
            }
          }
        },
        "description": "A physical data model (PDM) tables."
      },
      "ScanResultPdm": {
        "required": [
          "pdm",
          "warnings"
        ],
        "type": "object",
        "properties": {
          "pdm": {
            "$ref": "#/components/schemas/DeclarativeTables"
          },
          "warnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TableWarning"
            }
          }
        },
        "description": "Result of scan of data source physical model."
      },
      "TableWarning": {
        "required": [
          "columns",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "array",
            "description": "Table name.",
            "items": {
              "type": "string"
            }
          },
          "message": {
            "type": "array",
            "description": "Warning message related to the table.",
            "items": {
              "type": "string"
            }
          },
          "columns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ColumnWarning"
            }
          }
        },
        "description": "Warnings related to single table."
      },
      "TestDefinitionRequest": {
        "required": [
          "type",
          "url"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of database, where test should connect to.",
            "example": "POSTGRESQL",
            "enum": [
              "POSTGRESQL",
              "REDSHIFT",
              "VERTICA",
              "SNOWFLAKE",
              "ADS",
              "BIGQUERY",
              "MSSQL",
              "PRESTO"
            ]
          },
          "url": {
            "type": "string",
            "description": "URL to database in JDBC format, where test should connect to.",
            "example": "jdbc:postgresql://localhost:5432/db_name"
          },
          "schema": {
            "type": "string",
            "description": "Database schema.",
            "example": "public"
          },
          "username": {
            "type": "string",
            "description": "Database user name.",
            "example": "dbadmin"
          },
          "password": {
            "type": "string",
            "description": "Database user password.",
            "example": "admin123"
          }
        },
        "description": "A request containing all information for testing data source definition."
      },
      "AuthUser": {
        "required": [
          "displayName",
          "email"
        ],
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email - used as lookup (must be unique). For PUT method, it must be same as in URL",
            "example": "zeus@example.com"
          },
          "password": {
            "type": "string",
            "description": "User password. It is not returned by GET method."
          },
          "displayName": {
            "type": "string",
            "description": "User description, which will be visible in application.",
            "example": "jeremy"
          },
          "authenticationId": {
            "type": "string",
            "description": "Field, which should be stored in metadata in authenticationId field. In PUT and POST method it must be not present, or equal to value calculated by backend (e.g. returned from previous GET)."
          }
        },
        "description": "Entity representing user in authentication system."
      },
      "Profile": {
        "required": [
          "links",
          "userId"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          },
          "telemetry": {
            "$ref": "#/components/schemas/Telemetry"
          },
          "links": {
            "$ref": "#/components/schemas/ProfileLinks"
          }
        }
      },
      "ProfileLinks": {
        "required": [
          "organization",
          "self",
          "user"
        ],
        "type": "object",
        "properties": {
          "self": {
            "type": "string"
          },
          "organization": {
            "type": "string"
          },
          "user": {
            "type": "string"
          }
        }
      },
      "Telemetry": {
        "required": [
          "deploymentId",
          "host",
          "organizationHash",
          "siteId",
          "userHash"
        ],
        "type": "object",
        "properties": {
          "host": {
            "type": "string"
          },
          "siteId": {
            "type": "integer",
            "format": "int32"
          },
          "deploymentId": {
            "type": "string"
          },
          "organizationHash": {
            "type": "string"
          },
          "userHash": {
            "type": "string"
          }
        }
      },
      "LicenseSimple": {
        "required": [
          "entitlements",
          "expiry",
          "id",
          "state"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "expiry": {
            "type": "string"
          },
          "state": {
            "type": "string",
            "enum": [
              "UNAVAILABLE",
              "VALID",
              "INVALID",
              "EXPIRED"
            ]
          },
          "entitlements": {
            "uniqueItems": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      }
    },
    "responses": {
      "Deleted": {
        "description": "Successfully deleted"
      }
    },
    "parameters": {
      "page": {
        "name": "page",
        "in": "query",
        "description": "Zero-based page index (0..N)",
        "schema": {
          "type": "integer",
          "default": 0
        }
      },
      "size": {
        "name": "size",
        "in": "query",
        "description": "The size of the page to be returned",
        "schema": {
          "type": "integer",
          "default": 20
        }
      },
      "sort": {
        "name": "sort",
        "in": "query",
        "description": "Sorting criteria in the format: property(,asc|desc). Default sort order is ascending. Multiple sort criteria are supported.",
        "schema": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "idPathParameter": {
        "name": "id",
        "in": "path",
        "required": true,
        "schema": {
          "pattern": "^[.A-Za-z0-9_-]{1,255}$",
          "type": "string"
        }
      }
    }
  }
}