From e8e31cbaacd0a353835b34a7b8ffe8a92fb222f0 Mon Sep 17 00:00:00 2001 From: Yu Ishikawa Date: Fri, 6 Dec 2024 21:46:39 +0900 Subject: [PATCH 1/3] Add `dependabot.yml` (#43) Signed-off-by: Yu Ishikawa --- .github/dependabot.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..5ea5d9d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,20 @@ +# Copyright 2024 yu-iskw +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: monthly From b9f4002096e4e569fd1ef1af87c68d83e8cfa3c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Dec 2024 22:46:36 +0900 Subject: [PATCH 2/3] Bump akhilmhdh/contributors-readme-action from 2.3.6 to 2.3.10 (#44) Bumps [akhilmhdh/contributors-readme-action](https://github.com/akhilmhdh/contributors-readme-action) from 2.3.6 to 2.3.10. - [Release notes](https://github.com/akhilmhdh/contributors-readme-action/releases) - [Commits](https://github.com/akhilmhdh/contributors-readme-action/compare/v2.3.6...v2.3.10) --- updated-dependencies: - dependency-name: akhilmhdh/contributors-readme-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/contributors-list.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/contributors-list.yml b/.github/workflows/contributors-list.yml index 932e5eb..8efbaa0 100644 --- a/.github/workflows/contributors-list.yml +++ b/.github/workflows/contributors-list.yml @@ -12,6 +12,6 @@ jobs: name: A job to automate contrib in readme steps: - name: Contribute List - uses: akhilmhdh/contributors-readme-action@v2.3.6 + uses: akhilmhdh/contributors-readme-action@v2.3.10 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From e321b83a48e7e9a30ee474cb42de19aed54a6a27 Mon Sep 17 00:00:00 2001 From: Yu Ishikawa Date: Fri, 6 Dec 2024 22:48:04 +0900 Subject: [PATCH 3/3] Update pre-commit (#45) Signed-off-by: Yu Ishikawa --- .pre-commit-config.yaml | 15 +- Makefile | 2 +- dev/generate_clients.sh | 8 +- dev/generate_openapi_schema.py | 6 +- dev/openapi-python-client.yml | 2 +- dev/schemas/rebuilt-swagger.json | 17045 +++++++------ .../schemas/ApiCreateCustomExplore.json | 19 - .../schemas/ApiGroupListResponse.json | 15 +- .../ApiSqlRunnerPivotQueryPayload.json | 3 + .../schemas/CartesianChartDisplay.json | 11 +- .../components/schemas/CatalogField.json | 26 +- .../components/schemas/CatalogTable.json | 26 +- .../schemas/CreateCustomExplorePayload.json | 22 - .../components/schemas/CreateSqlChart.json | 2 +- .../schemas/DashboardChartTileProperties.json | 3 + ...oardSemanticViewerChartTileProperties.json | 3 + .../DashboardSqlChartTileProperties.json | 3 + .../components/schemas/Explore.json | 3 + .../components/schemas/Group.json | 18 + ...Data_OrganizationMemberProfile-Array_.json | 5 + ...exPaginatedData_SummaryContent-Array_.json | 5 + .../components/schemas/LightdashUser.json | 17 +- .../schemas/OrganizationMemberProfile.json | 16 +- .../schemas/OrganizationProject.json | 10 + .../Pick_Explore.SummaryExploreFields_.json | 3 + ...ploreError.SummaryExploreErrorFields_.json | 3 + ...keyofSavedChart.isPrivate-or-access__.json | 8 +- .../components/schemas/Project.json | 9 + .../components/schemas/SchedulerBase.json | 7 + .../components/schemas/SchedulerLog.json | 4 +- .../schemas/SemanticLayerField.json | 2 +- .../schemas/SemanticLayerQuery.json | 41 +- .../schemas/SemanticLayerSortBy.json | 2 +- .../schemas/SemanticLayerSortByDirection.json | 7 - .../schemas/SemanticViewerChartCreate.json | 2 +- .../schemas/SemanticViewerChartUpdate.json | 2 +- .../components/schemas/SqlRunnerBody.json | 6 - .../components/schemas/TableBase.json | 3 + .../schemas/UpdateVersionedSqlChart.json | 2 +- .../components/schemas/VizBarChartConfig.json | 2 +- .../schemas/VizCartesianChartConfig.json | 2 +- .../components/schemas/VizChartConfig.json | 16 - .../components/schemas/VizChartLayout.json | 60 - .../schemas/VizLineChartConfig.json | 2 +- .../components/schemas/VizPieChartConfig.json | 2 +- .../components/schemas/VizTableConfig.json | 3 + dev/schemas/split-swagger/openapi.json | 65 +- .../paths/api_v1_org_groups.json | 28 +- .../split-swagger/paths/api_v1_org_users.json | 9 + ...rojects_{projectUuid}_chart-summaries.json | 9 + ...uid}_explores_{exploreId}_downloadCsv.json | 6 + ...rojectUuid}_semantic-layer-connection.json | 41 +- .../paths/api_v1_slack_channels.json | 11 +- dev/schemas/swagger.json | 19885 +++++++++------- pyproject.toml | 19 +- ruff.toml | 6 + 56 files changed, 22424 insertions(+), 15128 deletions(-) delete mode 100644 dev/schemas/split-swagger/components/schemas/ApiCreateCustomExplore.json delete mode 100644 dev/schemas/split-swagger/components/schemas/CreateCustomExplorePayload.json delete mode 100644 dev/schemas/split-swagger/components/schemas/SemanticLayerSortByDirection.json delete mode 100644 dev/schemas/split-swagger/components/schemas/VizChartConfig.json delete mode 100644 dev/schemas/split-swagger/components/schemas/VizChartLayout.json create mode 100644 ruff.toml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ad5be36..10704c7 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -27,12 +27,17 @@ repos: rev: v1.7.1 hooks: - id: actionlint-docker - - repo: https://github.com/pycqa/isort - rev: 5.13.2 - hooks: - - id: isort - name: isort (python) - repo: https://github.com/shellcheck-py/shellcheck-py rev: v0.10.0.1 hooks: - id: shellcheck + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.8.2 + hooks: + - id: ruff + always_run: true + # SEE https://docs.astral.sh/ruff/formatter/#sorting-imports + args: [--select, I, --fix, --config=ruff.toml] + - id: ruff-format + always_run: true + args: [--config=ruff.toml] diff --git a/Makefile b/Makefile index a7a7653..5ba4d20 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ setup: setup-python setup-pre-commit .PHONE: setup-python setup-python: - pip install -U pip==23.1.0 + pip install -U pip==24.3.1 bash ./dev/setup.sh .PHONE: setup-pre-commit diff --git a/dev/generate_clients.sh b/dev/generate_clients.sh index 29e5895..a7638d4 100644 --- a/dev/generate_clients.sh +++ b/dev/generate_clients.sh @@ -19,7 +19,7 @@ # Constants SCRIPT_DIR="$(dirname "$(readlink -f "$0")")" -PROJECT_DIR="$(dirname "$SCRIPT_DIR")" +PROJECT_DIR="$(dirname "${SCRIPT_DIR}")" # Arguments schema_json="${PROJECT_DIR}/dev/schemas/rebuilt-swagger.json" @@ -50,9 +50,6 @@ while (($# > 0)); do done options=() -if [[ "${skip_validate_spec:?}" == "1" ]]; then - options+=("--skip-validate-spec") -fi # Generate the client in the temporary directory. temp_dir="$(mktemp -d -t openapi-python-client-XXXXXXXXXX)" @@ -60,7 +57,8 @@ cd "${temp_dir:?}" || exit 1 openapi-python-client generate \ --path "${schema_json:?}" \ --config "${config_yaml:?}" \ - --meta "${meta:?}" + --meta "${meta:?}" \ + "${options[@]}" ls -la "${temp_dir:?}/lightdash-client-python" diff --git a/dev/generate_openapi_schema.py b/dev/generate_openapi_schema.py index 6813ed3..61420c6 100644 --- a/dev/generate_openapi_schema.py +++ b/dev/generate_openapi_schema.py @@ -21,7 +21,11 @@ @click.command() -@click.option("--reference", type=str, default="https://raw.githubusercontent.com/lightdash/lightdash/main/packages/backend/src/generated/swagger.json") +@click.option( + "--reference", + type=str, + default="https://raw.githubusercontent.com/lightdash/lightdash/main/packages/backend/src/generated/swagger.json", +) # @click.option("--output", type=str, required=True) def main(reference: str): print(f"Reference URL: {reference}") diff --git a/dev/openapi-python-client.yml b/dev/openapi-python-client.yml index 53fc838..9bf4469 100644 --- a/dev/openapi-python-client.yml +++ b/dev/openapi-python-client.yml @@ -3,6 +3,6 @@ project_name_override: lightdash-client-python package_name_override: lightdash_client -package_version_override: "0.2.0" +package_version_override: 0.2.0 http_timeout: 30 diff --git a/dev/schemas/rebuilt-swagger.json b/dev/schemas/rebuilt-swagger.json index 804407e..c32c009 100644 --- a/dev/schemas/rebuilt-swagger.json +++ b/dev/schemas/rebuilt-swagger.json @@ -2,7 +2,7 @@ "openapi": "3.0.0", "info": { "title": "Lightdash API", - "version": "0.1286.0", + "version": "0.1398.0", "description": "Open API documentation for all public Lightdash API endpoints. # Authentication Before you get started, you might need to create a Personal Access Token to authenticate via the API. You can create a token by following this guide: https://docs.lightdash.com/references/personal_tokens\n", "license": { "name": "MIT" @@ -336,16 +336,16 @@ ] } }, - "/api/v1/comments/dashboards/{dashboardUuid}/{dashboardTileUuid}": { - "post": { - "operationId": "createComment", + "/api/v1/projects/{projectUuid}/dataCatalog/metrics": { + "get": { + "operationId": "getMetricsCatalog", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiCreateComment" + "$ref": "#/components/schemas/ApiMetricsCatalog" } } } @@ -361,55 +361,86 @@ } } }, - "description": "Creates a comment on a dashboard tile", + "description": "Get metrics catalog", "tags": [ - "Comments" + "Catalog" ], "security": [], "parameters": [ { - "description": "the uuid of the dashboard", "in": "path", - "name": "dashboardUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" } }, { - "description": "the uuid of the dashboard tile", - "in": "path", - "name": "dashboardTileUuid", - "required": true, + "in": "query", + "name": "search", + "required": false, "schema": { "type": "string" } - } - ], - "requestBody": { - "description": "the comment to create", - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Pick_Comment.text-or-replyTo-or-mentions-or-textHtml_", - "description": "the comment to create" + }, + { + "in": "query", + "name": "page", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, + { + "in": "query", + "name": "pageSize", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, + { + "in": "query", + "name": "sort", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "order", + "required": false, + "schema": { + "$ref": "#/components/schemas/ApiSortDirection" + } + }, + { + "in": "query", + "name": "categories", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" } } } - } + ] } }, - "/api/v1/comments/dashboards/{dashboardUuid}": { + "/api/v1/projects/{projectUuid}/dataCatalog/metrics/{tableName}/{metricName}": { "get": { - "operationId": "getComments", + "operationId": "getMetric", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGetComments" + "$ref": "#/components/schemas/ApiGetMetricPeek" } } } @@ -425,16 +456,31 @@ } } }, - "description": "Gets all comments for a dashboard", + "description": "Get metric by table and metric name", "tags": [ - "Comments" + "Catalog" ], "security": [], "parameters": [ { - "description": "the uuid of the dashboard", "in": "path", - "name": "dashboardUuid", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "tableName", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "metricName", "required": true, "schema": { "type": "string" @@ -443,16 +489,16 @@ ] } }, - "/api/v1/comments/dashboards/{dashboardUuid}/{commentId}": { - "patch": { - "operationId": "resolveComment", + "/api/v1/projects/{projectUuid}/dataCatalog/metrics-with-time-dimensions": { + "get": { + "operationId": "getMetricsWithTimeDimensions", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiResolveComment" + "$ref": "#/components/schemas/ApiMetricsWithAssociatedTimeDimensionResponse" } } } @@ -468,41 +514,33 @@ } } }, - "description": "Resolves a comment on a dashboard", + "description": "Get metrics with time dimensions", "tags": [ - "Comments" + "Catalog" ], "security": [], "parameters": [ { - "description": "the uuid of the dashboard", - "in": "path", - "name": "dashboardUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "the uuid of the comment", "in": "path", - "name": "commentId", + "name": "projectUuid", "required": true, "schema": { "type": "string" } } ] - }, - "delete": { - "operationId": "deleteComment", + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/{catalogSearchUuid}/categories": { + "post": { + "operationId": "addCategoryToCatalogItem", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiResolveComment" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -518,43 +556,60 @@ } } }, - "description": "Deletes a comment on a dashboard", "tags": [ - "Comments" + "Catalog" ], "security": [], "parameters": [ { - "description": "the uuid of the dashboard", "in": "path", - "name": "dashboardUuid", + "name": "catalogSearchUuid", "required": true, "schema": { "type": "string" } - }, - { - "description": "the uuid of the comment", - "in": "path", - "name": "commentId", - "required": true, - "schema": { - "type": "string" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "tagUuid": { + "type": "string" + } + }, + "required": [ + "tagUuid" + ], + "type": "object" + } } } - ] + } } }, - "/api/v1/csv/{jobId}": { - "get": { - "operationId": "getCsvUrl", + "/api/v1/projects/{projectUuid}/dataCatalog/{catalogSearchUuid}/categories/{tagUuid}": { + "delete": { + "operationId": "removeCategoryFromCatalogItem", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiCsvUrlResponse" + "properties": { + "results": {}, + "status": { + "type": "string" + } + }, + "required": [ + "results", + "status" + ], + "type": "object" } } } @@ -570,16 +625,22 @@ } } }, - "description": "Get a Csv", "tags": [ - "Exports" + "Catalog" ], "security": [], "parameters": [ { - "description": "the jobId for the CSV", "in": "path", - "name": "jobId", + "name": "catalogSearchUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "tagUuid", "required": true, "schema": { "type": "string" @@ -588,16 +649,16 @@ ] } }, - "/api/v1/dashboards/{dashboardUuid}/promote": { - "post": { - "operationId": "promoteDashboard", + "/api/v1/projects/{projectUuid}/dataCatalog/{catalogSearchUuid}/icon": { + "patch": { + "operationId": "updateCatalogItemIcon", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiPromoteDashboardResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -613,34 +674,63 @@ } } }, - "description": "Promote dashboard to its upstream project", "tags": [ - "Dashboards" + "Catalog" ], "security": [], "parameters": [ { - "description": "dashboardUuid for the dashboard to run", "in": "path", - "name": "dashboardUuid", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "catalogSearchUuid", "required": true, "schema": { "type": "string" } } - ] + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "icon": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemIcon" + } + ], + "nullable": true + } + }, + "required": [ + "icon" + ], + "type": "object" + } + } + } + } } }, - "/api/v1/dashboards/{dashboardUuid}/promoteDiff": { + "/api/v1/projects/{projectUuid}/dataCatalog/metrics/tree": { "get": { - "operationId": "promoteDashboardDiff", + "operationId": "getMetricsTree", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiPromotionChangesResponse" + "$ref": "#/components/schemas/ApiGetMetricsTree" } } } @@ -656,27 +746,36 @@ } } }, - "description": "Get diff from dashboard to promote", "tags": [ - "Dashboards" + "Catalog" ], "security": [], "parameters": [ { - "description": "dashboardUuid for the dashboard to check diff", "in": "path", - "name": "dashboardUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" } + }, + { + "in": "query", + "name": "metricUuids", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } } ] } }, - "/api/v1/projects/{projectUuid}/explores": { - "put": { - "operationId": "SetExplores", + "/api/v1/projects/{projectUuid}/dataCatalog/metrics/tree/edges": { + "post": { + "operationId": "createMetricsTreeEdge", "responses": { "200": { "description": "Success", @@ -700,7 +799,7 @@ } }, "tags": [ - "Projects" + "Catalog" ], "security": [], "parameters": [ @@ -718,38 +817,23 @@ "content": { "application/json": { "schema": { - "items": {}, - "type": "array" + "$ref": "#/components/schemas/ApiMetricsTreeEdgePayload" } } } } - }, - "get": { - "operationId": "GetExplores", + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/metrics/tree/edges/{sourceCatalogSearchUuid}/{targetCatalogSearchUuid}": { + "delete": { + "operationId": "deleteMetricsTreeEdge", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/ApiExploresResults" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -766,7 +850,7 @@ } }, "tags": [ - "Projects" + "Catalog" ], "security": [], "parameters": [ @@ -777,36 +861,36 @@ "schema": { "type": "string" } + }, + { + "in": "path", + "name": "sourceCatalogSearchUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "targetCatalogSearchUuid", + "required": true, + "schema": { + "type": "string" + } } ] } }, - "/api/v1/projects/{projectUuid}/explores/{exploreId}": { - "get": { - "operationId": "GetExplore", + "/api/v1/comments/dashboards/{dashboardUuid}/{dashboardTileUuid}": { + "post": { + "operationId": "createComment", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/Explore" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" + "$ref": "#/components/schemas/ApiCreateComment" } } } @@ -822,56 +906,55 @@ } } }, + "description": "Creates a comment on a dashboard tile", "tags": [ - "Projects" + "Comments" ], "security": [], "parameters": [ { + "description": "the uuid of the dashboard", "in": "path", - "name": "exploreId", + "name": "dashboardUuid", "required": true, "schema": { "type": "string" } }, { + "description": "the uuid of the dashboard tile", "in": "path", - "name": "projectUuid", + "name": "dashboardTileUuid", "required": true, "schema": { "type": "string" } } - ] + ], + "requestBody": { + "description": "the comment to create", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pick_Comment.text-or-replyTo-or-mentions-or-textHtml_", + "description": "the comment to create" + } + } + } + } } }, - "/api/v1/projects/{projectUuid}/explores/{exploreId}/compileQuery": { - "post": { - "operationId": "CompileQuery", + "/api/v1/comments/dashboards/{dashboardUuid}": { + "get": { + "operationId": "getComments", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/ApiCompiledQueryResults" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" + "$ref": "#/components/schemas/ApiGetComments" } } } @@ -887,74 +970,84 @@ } } }, + "description": "Gets all comments for a dashboard", "tags": [ - "Projects" + "Comments" ], "security": [], "parameters": [ { + "description": "the uuid of the dashboard", "in": "path", - "name": "exploreId", + "name": "dashboardUuid", "required": true, "schema": { "type": "string" } + } + ] + } + }, + "/api/v1/comments/dashboards/{dashboardUuid}/{commentId}": { + "patch": { + "operationId": "resolveComment", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiResolveComment" + } + } + } }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Resolves a comment on a dashboard", + "tags": [ + "Comments" + ], + "security": [], + "parameters": [ { + "description": "the uuid of the dashboard", "in": "path", - "name": "projectUuid", + "name": "dashboardUuid", "required": true, "schema": { "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MetricQuery" - } + }, + { + "description": "the uuid of the comment", + "in": "path", + "name": "commentId", + "required": true, + "schema": { + "type": "string" } } - } - } - }, - "/api/v1/projects/{projectUuid}/explores/{exploreId}/downloadCsv": { - "post": { - "operationId": "DownloadCsvFromExplore", + ] + }, + "delete": { + "operationId": "deleteComment", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "properties": { - "results": { - "properties": { - "jobId": { - "type": "string" - } - }, - "required": [ - "jobId" - ], - "type": "object" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" + "$ref": "#/components/schemas/ApiResolveComment" } } } @@ -970,143 +1063,155 @@ } } }, + "description": "Deletes a comment on a dashboard", "tags": [ - "Projects" + "Comments" ], "security": [], "parameters": [ { + "description": "the uuid of the dashboard", "in": "path", - "name": "exploreId", + "name": "dashboardUuid", "required": true, "schema": { "type": "string" } }, { + "description": "the uuid of the comment", "in": "path", - "name": "projectUuid", + "name": "commentId", "required": true, "schema": { "type": "string" } } + ] + } + }, + "/api/v1/csv/{jobId}": { + "get": { + "operationId": "getCsvUrl", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiCsvUrlResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get a Csv", + "tags": [ + "Exports" ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/MetricQuery" - }, - { - "properties": { - "chartName": { - "type": "string" - }, - "hiddenFields": { - "items": { - "type": "string" - }, - "type": "array" - }, - "columnOrder": { - "items": { - "type": "string" - }, - "type": "array" - }, - "customLabels": { - "properties": {}, - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "showTableNames": { - "type": "boolean" - }, - "csvLimit": { - "type": "number", - "format": "double", - "nullable": true - }, - "onlyRaw": { - "type": "boolean" - } - }, - "required": [ - "columnOrder", - "showTableNames", - "onlyRaw" - ], - "type": "object" - } - ] - } + "security": [], + "parameters": [ + { + "description": "the jobId for the CSV", + "in": "path", + "name": "jobId", + "required": true, + "schema": { + "type": "string" } } - } - } - }, - "/api/v1/github/install": { - "get": { - "operationId": "installGithubAppForOrganization", - "responses": { - "302": { - "description": "Not found" - } - }, - "description": "Install the Lightdash GitHub App and link to an organization", - "security": [], - "parameters": [] + ] } }, - "/api/v1/github/oauth/callback": { - "get": { - "operationId": "githubOauthCallback", + "/api/v1/dashboards/{dashboardUuid}/promote": { + "post": { + "operationId": "promoteDashboard", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiPromoteDashboardResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } } }, - "description": "Callback URL for GitHub App Authorization also used for GitHub App Installation with combined Authorization", + "description": "Promote dashboard to its upstream project", + "tags": [ + "Dashboards" + ], "security": [], "parameters": [ { - "description": "authorization code from GitHub", - "in": "query", - "name": "code", - "required": false, + "description": "dashboardUuid for the dashboard to run", + "in": "path", + "name": "dashboardUuid", + "required": true, "schema": { "type": "string" } - }, - { - "description": "oauth state parameter", - "in": "query", - "name": "state", - "required": false, - "schema": { - "type": "string" + } + ] + } + }, + "/api/v1/dashboards/{dashboardUuid}/promoteDiff": { + "get": { + "operationId": "promoteDashboardDiff", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiPromotionChangesResponse" + } + } } }, - { - "description": "installation id from GitHub", - "in": "query", - "name": "installation_id", - "required": false, - "schema": { - "type": "string" + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } } - }, + } + }, + "description": "Get diff from dashboard to promote", + "tags": [ + "Dashboards" + ], + "security": [], + "parameters": [ { - "description": "setup action from GitHub", - "in": "query", - "name": "setup_action", - "required": false, + "description": "dashboardUuid for the dashboard to check diff", + "in": "path", + "name": "dashboardUuid", + "required": true, "schema": { "type": "string" } @@ -1114,12 +1219,12 @@ ] } }, - "/api/v1/github/uninstall": { - "delete": { - "operationId": "uninstallGithubAppForOrganization", + "/api/v1/projects/{projectUuid}/explores": { + "put": { + "operationId": "SetExplores", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { @@ -1127,53 +1232,46 @@ } } } - } - }, - "security": [], - "parameters": [] - } - }, - "/api/v1/github/repos/list": { - "get": { - "operationId": "getGithubListRepositories", - "responses": { - "200": { - "description": "", + }, + "default": { + "description": "Error", "content": { "application/json": { "schema": { - "properties": { - "results": { - "items": { - "$ref": "#/components/schemas/GitRepo" - }, - "type": "array" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" + "$ref": "#/components/schemas/ApiErrorPayload" } } } } }, + "tags": [ + "Projects" + ], "security": [], - "parameters": [] - } - }, - "/api/v1/projects/{projectUuid}/git-integration": { + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "items": {}, + "type": "array" + } + } + } + } + }, "get": { - "operationId": "GetConfiguration", + "operationId": "GetExplores", "responses": { "200": { "description": "Success", @@ -1182,7 +1280,7 @@ "schema": { "properties": { "results": { - "$ref": "#/components/schemas/GitIntegrationConfiguration" + "$ref": "#/components/schemas/ApiExploresResults" }, "status": { "type": "string", @@ -1213,7 +1311,7 @@ } }, "tags": [ - "Git Integration" + "Projects" ], "security": [], "parameters": [ @@ -1228,9 +1326,9 @@ ] } }, - "/api/v1/projects/{projectUuid}/git-integration/pull-requests/chart/{chartUuid}/fields": { + "/api/v1/projects/{projectUuid}/explores/{exploreId}": { "get": { - "operationId": "CreatePullRequestForChartFields", + "operationId": "GetExplore", "responses": { "200": { "description": "Success", @@ -1239,7 +1337,7 @@ "schema": { "properties": { "results": { - "$ref": "#/components/schemas/PullRequestCreated" + "$ref": "#/components/schemas/Explore" }, "status": { "type": "string", @@ -1270,13 +1368,13 @@ } }, "tags": [ - "Git Integration" + "Projects" ], "security": [], "parameters": [ { "in": "path", - "name": "projectUuid", + "name": "exploreId", "required": true, "schema": { "type": "string" @@ -1284,7 +1382,7 @@ }, { "in": "path", - "name": "chartUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" @@ -1293,9 +1391,9 @@ ] } }, - "/api/v1/projects/{projectUuid}/git-integration/pull-requests/custom-metrics": { + "/api/v1/projects/{projectUuid}/explores/{exploreId}/compileQuery": { "post": { - "operationId": "CreatePullRequestForCustomMetrics", + "operationId": "CompileQuery", "responses": { "200": { "description": "Success", @@ -1304,7 +1402,7 @@ "schema": { "properties": { "results": { - "$ref": "#/components/schemas/PullRequestCreated" + "$ref": "#/components/schemas/ApiCompiledQueryResults" }, "status": { "type": "string", @@ -1335,60 +1433,73 @@ } }, "tags": [ - "Git Integration" + "Projects" ], "security": [], "parameters": [ { "in": "path", - "name": "projectUuid", + "name": "exploreId", "required": true, "schema": { "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { + }, + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { "application/json": { "schema": { - "properties": { - "quoteChar": { - "type": "string", - "enum": [ - "\"", - "'" - ] - }, - "customMetrics": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "quoteChar", - "customMetrics" - ], - "type": "object" + "$ref": "#/components/schemas/MetricQuery" } } } } } }, - "/api/v1/gdrive/get-access-token": { - "get": { - "operationId": "getAccessToken", + "/api/v1/projects/{projectUuid}/explores/{exploreId}/downloadCsv": { + "post": { + "operationId": "DownloadCsvFromExplore", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGdriveAccessTokenResponse" + "properties": { + "results": { + "properties": { + "jobId": { + "type": "string" + } + }, + "required": [ + "jobId" + ], + "type": "object" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" } } } @@ -1404,121 +1515,159 @@ } } }, - "description": "Get access token for google drive", "tags": [ - "Integrations" + "Projects" ], "security": [], - "parameters": [] - } - }, - "/api/v1/gdrive/upload-gsheet": { - "post": { - "operationId": "uploadGsheet", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiJobScheduledResponse" - } - } + "parameters": [ + { + "in": "path", + "name": "exploreId", + "required": true, + "schema": { + "type": "string" } }, - "default": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiErrorPayload" - } - } + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" } } - }, - "description": "Upload results from query to Google Sheet", - "tags": [ - "Integrations" ], - "security": [], - "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UploadMetricGsheet" + "allOf": [ + { + "$ref": "#/components/schemas/MetricQuery" + }, + { + "properties": { + "pivotColumns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "chartName": { + "type": "string" + }, + "hiddenFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "columnOrder": { + "items": { + "type": "string" + }, + "type": "array" + }, + "customLabels": { + "properties": {}, + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "showTableNames": { + "type": "boolean" + }, + "csvLimit": { + "type": "number", + "format": "double", + "nullable": true + }, + "onlyRaw": { + "type": "boolean" + } + }, + "required": [ + "columnOrder", + "showTableNames", + "onlyRaw" + ], + "type": "object" + } + ] } } } } } }, - "/api/v1/groups/{groupUuid}": { + "/api/v1/github/install": { "get": { - "operationId": "getGroup", + "operationId": "installGithubAppForOrganization", "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiGroupResponse" - } - } - } - }, - "default": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiErrorPayload" - } - } - } + "302": { + "description": "Not found" } }, - "description": "Get group details", - "tags": [ - "User Groups" - ], + "description": "Install the Lightdash GitHub App and link to an organization", + "security": [], + "parameters": [] + } + }, + "/api/v1/github/oauth/callback": { + "get": { + "operationId": "githubOauthCallback", + "responses": { + "204": { + "description": "No content" + } + }, + "description": "Callback URL for GitHub App Authorization also used for GitHub App Installation with combined Authorization", "security": [], "parameters": [ { - "description": "unique id of the group", - "in": "path", - "name": "groupUuid", - "required": true, + "description": "authorization code from GitHub", + "in": "query", + "name": "code", + "required": false, "schema": { "type": "string" } }, { - "description": "number of members to include", + "description": "oauth state parameter", "in": "query", - "name": "includeMembers", + "name": "state", "required": false, "schema": { - "format": "double", - "type": "number" + "type": "string" } }, { - "description": "offset of members to include", + "description": "installation id from GitHub", "in": "query", - "name": "offset", + "name": "installation_id", "required": false, "schema": { - "format": "double", - "type": "number" + "type": "string" + } + }, + { + "description": "setup action from GitHub", + "in": "query", + "name": "setup_action", + "required": false, + "schema": { + "type": "string" } } ] - }, + } + }, + "/api/v1/github/uninstall": { "delete": { - "operationId": "deleteGroup", + "operationId": "uninstallGithubAppForOrganization", "responses": { "200": { "description": "Ok", @@ -1529,43 +1678,76 @@ } } } - }, - "default": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiErrorPayload" - } - } - } } }, - "description": "Delete a group", - "tags": [ - "User Groups" - ], "security": [], - "parameters": [ - { - "in": "path", - "name": "groupUuid", - "required": true, - "schema": { - "type": "string" + "parameters": [] + } + }, + "/api/v1/github/repos/list": { + "get": { + "operationId": "getGithubListRepositories", + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/GitRepo" + }, + "type": "array" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + } + } } } - ] - }, - "patch": { - "operationId": "updateGroup", + }, + "security": [], + "parameters": [] + } + }, + "/api/v1/projects/{projectUuid}/git-integration": { + "get": { + "operationId": "GetConfiguration", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGroupResponse" + "properties": { + "results": { + "$ref": "#/components/schemas/GitIntegrationConfiguration" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" } } } @@ -1581,43 +1763,48 @@ } } }, - "description": "Update a group", "tags": [ - "User Groups" + "Git Integration" ], "security": [], "parameters": [ { "in": "path", - "name": "groupUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" } } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateGroupWithMembers" - } - } - } - } + ] } }, - "/api/v1/groups/{groupUuid}/members/{userUuid}": { - "put": { - "operationId": "addUserToGroup", + "/api/v1/projects/{projectUuid}/git-integration/pull-requests/chart/{chartUuid}/fields": { + "get": { + "operationId": "CreatePullRequestForChartFields", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "properties": { + "results": { + "$ref": "#/components/schemas/PullRequestCreated" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" } } } @@ -1633,41 +1820,56 @@ } } }, - "description": "Add a Lightdash user to a group", "tags": [ - "User Groups" + "Git Integration" ], "security": [], "parameters": [ { - "description": "the UUID for the group to add the user to", "in": "path", - "name": "groupUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" } }, { - "description": "the UUID for the user to add to the group", "in": "path", - "name": "userUuid", + "name": "chartUuid", "required": true, "schema": { "type": "string" } } ] - }, - "delete": { - "operationId": "removeUserFromGroup", + } + }, + "/api/v1/projects/{projectUuid}/git-integration/pull-requests/custom-metrics": { + "post": { + "operationId": "CreatePullRequestForCustomMetrics", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "properties": { + "results": { + "$ref": "#/components/schemas/PullRequestCreated" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" } } } @@ -1683,43 +1885,61 @@ } } }, - "description": "Remove a user from a group", "tags": [ - "User Groups" + "Git Integration" ], "security": [], "parameters": [ { - "description": "the UUID for the group to remove the user from", "in": "path", - "name": "groupUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" } - }, - { - "description": "the UUID for the user to remove from the group", - "in": "path", - "name": "userUuid", - "required": true, - "schema": { - "type": "string" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "quoteChar": { + "type": "string", + "enum": [ + "\"", + "'" + ] + }, + "customMetrics": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "quoteChar", + "customMetrics" + ], + "type": "object" + } } } - ] + } } }, - "/api/v1/groups/{groupUuid}/members": { + "/api/v1/gdrive/get-access-token": { "get": { - "operationId": "getGroupMembers", + "operationId": "getAccessToken", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGroupMembersResponse" + "$ref": "#/components/schemas/ApiGdriveAccessTokenResponse" } } } @@ -1735,34 +1955,24 @@ } } }, - "description": "View members of a group", + "description": "Get access token for google drive", "tags": [ - "User Groups" + "Integrations" ], "security": [], - "parameters": [ - { - "description": "the UUID for the group to view the members of", - "in": "path", - "name": "groupUuid", - "required": true, - "schema": { - "type": "string" - } - } - ] + "parameters": [] } }, - "/api/v1/groups/{groupUuid}/projects/{projectUuid}": { + "/api/v1/gdrive/upload-gsheet": { "post": { - "operationId": "addProjectAccessToGroup", + "operationId": "uploadGsheet", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiCreateProjectGroupAccess" + "$ref": "#/components/schemas/ApiJobScheduledResponse" } } } @@ -1778,49 +1988,34 @@ } } }, - "description": "Add project access to a group", + "description": "Upload results from query to Google Sheet", "tags": [ - "User Groups" + "Integrations" ], "security": [], - "parameters": [ - { - "in": "path", - "name": "groupUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Pick_CreateDBProjectGroupAccess.role_" + "$ref": "#/components/schemas/UploadMetricGsheet" } } } } - }, - "patch": { - "operationId": "updateProjectAccessForGroup", + } + }, + "/api/v1/groups/{groupUuid}": { + "get": { + "operationId": "getGroup", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiUpdateProjectGroupAccess" + "$ref": "#/components/schemas/ApiGroupResponse" } } } @@ -1836,13 +2031,14 @@ } } }, - "description": "Update project access for a group", + "description": "Get group details", "tags": [ "User Groups" ], "security": [], "parameters": [ { + "description": "unique id of the group", "in": "path", "name": "groupUuid", "required": true, @@ -1851,27 +2047,29 @@ } }, { - "in": "path", - "name": "projectUuid", - "required": true, + "description": "number of members to include", + "in": "query", + "name": "includeMembers", + "required": false, "schema": { - "type": "string" + "format": "double", + "type": "number" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Pick_DBProjectGroupAccess.role_" - } + }, + { + "description": "offset of members to include", + "in": "query", + "name": "offset", + "required": false, + "schema": { + "format": "double", + "type": "number" } } - } + ] }, "delete": { - "operationId": "removeProjectAccessFromGroup", + "operationId": "deleteGroup", "responses": { "200": { "description": "Ok", @@ -1894,7 +2092,7 @@ } } }, - "description": "Remove project access from a group", + "description": "Delete a group", "tags": [ "User Groups" ], @@ -1907,28 +2105,18 @@ "schema": { "type": "string" } - }, - { - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" - } } ] - } - }, - "/api/v1/notifications": { - "get": { - "operationId": "getNotifications", + }, + "patch": { + "operationId": "updateGroup", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGetNotifications" + "$ref": "#/components/schemas/ApiGroupResponse" } } } @@ -1944,29 +2132,39 @@ } } }, - "description": "Gets notifications for a user based on the type", + "description": "Update a group", "tags": [ - "Notifications" + "User Groups" ], "security": [], "parameters": [ { - "in": "query", - "name": "type", + "in": "path", + "name": "groupUuid", "required": true, "schema": { - "$ref": "#/components/schemas/ApiNotificationResourceType" + "type": "string" } } - ] + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateGroupWithMembers" + } + } + } + } } }, - "/api/v1/notifications/{notificationId}": { - "patch": { - "operationId": "updateNotification", + "/api/v1/groups/{groupUuid}/members/{userUuid}": { + "put": { + "operationId": "addUserToGroup", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { @@ -1986,44 +2184,41 @@ } } }, - "description": "Update notification", + "description": "Add a Lightdash user to a group", "tags": [ - "Notifications" + "User Groups" ], "security": [], "parameters": [ { - "description": "the id of the notification", + "description": "the UUID for the group to add the user to", "in": "path", - "name": "notificationId", + "name": "groupUuid", "required": true, "schema": { "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Pick_Notification.viewed_" - } + }, + { + "description": "the UUID for the user to add to the group", + "in": "path", + "name": "userUuid", + "required": true, + "schema": { + "type": "string" } } - } - } - }, - "/api/v1/org": { - "get": { - "operationId": "GetMyOrganization", + ] + }, + "delete": { + "operationId": "removeUserFromGroup", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiOrganization" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -2039,22 +2234,43 @@ } } }, - "description": "Get the current user's organization", + "description": "Remove a user from a group", "tags": [ - "Organizations" + "User Groups" ], "security": [], - "parameters": [] - }, - "put": { - "operationId": "CreateOrganization", + "parameters": [ + { + "description": "the UUID for the group to remove the user from", + "in": "path", + "name": "groupUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the UUID for the user to remove from the group", + "in": "path", + "name": "userUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/groups/{groupUuid}/members": { + "get": { + "operationId": "getGroupMembers", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiGroupMembersResponse" } } } @@ -2070,34 +2286,34 @@ } } }, - "description": "Creates a new organization, the current user becomes the Admin of the new organization.\nThis is only available to users that are not already in an organization.", + "description": "View members of a group", "tags": [ - "Organizations" + "User Groups" ], "security": [], - "parameters": [], - "requestBody": { - "description": "the new organization settings", - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Pick_Organization.name_", - "description": "the new organization settings" - } + "parameters": [ + { + "description": "the UUID for the group to view the members of", + "in": "path", + "name": "groupUuid", + "required": true, + "schema": { + "type": "string" } } - } - }, - "patch": { - "operationId": "UpdateMyOrganization", + ] + } + }, + "/api/v1/groups/{groupUuid}/projects/{projectUuid}": { + "post": { + "operationId": "addProjectAccessToGroup", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiCreateProjectGroupAccess" } } } @@ -2113,36 +2329,49 @@ } } }, - "description": "Update the current user's organization", + "description": "Add project access to a group", "tags": [ - "Organizations" + "User Groups" ], "security": [], - "parameters": [], + "parameters": [ + { + "in": "path", + "name": "groupUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], "requestBody": { - "description": "the new organization settings", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Partial_Omit_Organization.organizationUuid-or-needsProject__", - "description": "the new organization settings" + "$ref": "#/components/schemas/Pick_CreateDBProjectGroupAccess.role_" } } } } - } - }, - "/api/v1/org/{organizationUuid}": { - "delete": { - "operationId": "DeleteMyOrganization", + }, + "patch": { + "operationId": "updateProjectAccessForGroup", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiUpdateProjectGroupAccess" } } } @@ -2158,34 +2387,49 @@ } } }, - "description": "Deletes an organization and all users inside that organization", + "description": "Update project access for a group", "tags": [ - "Organizations" + "User Groups" ], "security": [], "parameters": [ { - "description": "the uuid of the organization to delete", "in": "path", - "name": "organizationUuid", + "name": "groupUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "projectUuid", "required": true, "schema": { "type": "string" } } - ] - } - }, - "/api/v1/org/projects": { - "get": { - "operationId": "ListOrganizationProjects", + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pick_DBProjectGroupAccess.role_" + } + } + } + } + }, + "delete": { + "operationId": "removeProjectAccessFromGroup", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiOrganizationProjects" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -2201,24 +2445,41 @@ } } }, - "description": "Gets all projects of the current user's organization", + "description": "Remove project access from a group", "tags": [ - "Organizations" + "User Groups" ], "security": [], - "parameters": [] + "parameters": [ + { + "in": "path", + "name": "groupUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] } }, - "/api/v1/org/users": { - "get": { - "operationId": "ListOrganizationMembers", + "/api/v1/projects/{projectUuid}/metricsExplorer/{explore}/{metric}/runMetricExplorerQuery": { + "post": { + "operationId": "runMetricExplorerQuery", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiOrganizationMemberProfiles" + "$ref": "#/components/schemas/ApiMetricsExplorerQueryResults" } } } @@ -2234,60 +2495,91 @@ } } }, - "description": "Gets all the members of the current user's organization", + "description": "Run a metrics explorer query", "tags": [ - "Organizations" + "Metrics Explorer", + "Metrics", + "Explorer" ], "security": [], "parameters": [ { - "in": "query", - "name": "includeGroups", - "required": false, + "description": "The project UUID", + "in": "path", + "name": "projectUuid", + "required": true, "schema": { - "format": "double", - "type": "number" + "type": "string" } }, { - "in": "query", - "name": "pageSize", - "required": false, + "description": "The explore name", + "in": "path", + "name": "explore", + "required": true, "schema": { - "format": "double", - "type": "number" + "type": "string" + } + }, + { + "description": "The metric name", + "in": "path", + "name": "metric", + "required": true, + "schema": { + "type": "string" } }, { "in": "query", - "name": "page", - "required": false, + "name": "startDate", + "required": true, "schema": { - "format": "double", - "type": "number" + "type": "string" } }, { "in": "query", - "name": "searchQuery", - "required": false, + "name": "endDate", + "required": true, "schema": { "type": "string" } } - ] + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "properties": { + "comparison": { + "$ref": "#/components/schemas/MetricExplorerComparisonType" + }, + "timeDimensionOverride": { + "$ref": "#/components/schemas/TimeDimensionConfig" + } + }, + "required": [ + "comparison" + ], + "type": "object" + } + } + } + } } }, - "/api/v1/org/users/{userUuid}": { + "/api/v1/notifications": { "get": { - "operationId": "GetOrganizationMemberByUuid", + "operationId": "getNotifications", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiOrganizationMemberProfile" + "$ref": "#/components/schemas/ApiGetNotifications" } } } @@ -2303,32 +2595,33 @@ } } }, - "description": "Get the member profile for a user in the current user's organization by uuid", + "description": "Gets notifications for a user based on the type", "tags": [ - "Organizations" + "Notifications" ], "security": [], "parameters": [ { - "description": "the uuid of the user", - "in": "path", - "name": "userUuid", + "in": "query", + "name": "type", "required": true, "schema": { - "$ref": "#/components/schemas/UUID" + "$ref": "#/components/schemas/ApiNotificationResourceType" } } ] - }, + } + }, + "/api/v1/notifications/{notificationId}": { "patch": { - "operationId": "UpdateOrganizationMember", + "operationId": "updateNotification", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiOrganizationMemberProfile" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -2344,17 +2637,16 @@ } } }, - "description": "Updates the membership profile for a user in the current user's organization", + "description": "Update notification", "tags": [ - "Roles & Permissions", - "Organizations" + "Notifications" ], "security": [], "parameters": [ { - "description": "the uuid of the user to update", + "description": "the id of the notification", "in": "path", - "name": "userUuid", + "name": "notificationId", "required": true, "schema": { "type": "string" @@ -2362,29 +2654,27 @@ } ], "requestBody": { - "description": "the new membership profile", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OrganizationMemberProfileUpdate", - "description": "the new membership profile" + "$ref": "#/components/schemas/Pick_Notification.viewed_" } } } } } }, - "/api/v1/org/user/{userUuid}": { - "delete": { - "operationId": "DeleteOrganizationMember", + "/api/v1/org": { + "get": { + "operationId": "GetMyOrganization", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiOrganization" } } } @@ -2400,34 +2690,22 @@ } } }, - "description": "Deletes a user from the current user's organization", + "description": "Get the current user's organization", "tags": [ "Organizations" ], "security": [], - "parameters": [ - { - "description": "the uuid of the user to delete", - "in": "path", - "name": "userUuid", - "required": true, - "schema": { - "type": "string" - } - } - ] - } - }, - "/api/v1/org/allowedEmailDomains": { - "get": { - "operationId": "ListOrganizationEmailDomains", + "parameters": [] + }, + "put": { + "operationId": "CreateOrganization", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiOrganizationAllowedEmailDomains" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -2443,22 +2721,34 @@ } } }, - "description": "Gets the allowed email domains for the current user's organization", + "description": "Creates a new organization, the current user becomes the Admin of the new organization.\nThis is only available to users that are not already in an organization.", "tags": [ "Organizations" ], "security": [], - "parameters": [] + "parameters": [], + "requestBody": { + "description": "the new organization settings", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pick_Organization.name_", + "description": "the new organization settings" + } + } + } + } }, "patch": { - "operationId": "UpdateOrganizationEmailDomains", + "operationId": "UpdateMyOrganization", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiOrganizationAllowedEmailDomains" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -2474,36 +2764,36 @@ } } }, - "description": "Updates the allowed email domains for the current user's organization", + "description": "Update the current user's organization", "tags": [ "Organizations" ], "security": [], "parameters": [], "requestBody": { - "description": "the new allowed email domains", + "description": "the new organization settings", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Pick_AllowedEmailDomains.Exclude_keyofAllowedEmailDomains.organizationUuid__", - "description": "the new allowed email domains" + "$ref": "#/components/schemas/Partial_Omit_Organization.organizationUuid-or-needsProject__", + "description": "the new organization settings" } } } } } }, - "/api/v1/org/groups": { - "post": { - "operationId": "CreateGroupInOrganization", + "/api/v1/org/{organizationUuid}": { + "delete": { + "operationId": "DeleteMyOrganization", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGroupResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -2519,34 +2809,34 @@ } } }, - "description": "Creates a new group in the current user's organization", + "description": "Deletes an organization and all users inside that organization", "tags": [ "Organizations" ], "security": [], - "parameters": [], - "requestBody": { - "description": "the new group details", - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateGroup", - "description": "the new group details" - } + "parameters": [ + { + "description": "the uuid of the organization to delete", + "in": "path", + "name": "organizationUuid", + "required": true, + "schema": { + "type": "string" } } - } - }, + ] + } + }, + "/api/v1/org/projects": { "get": { - "operationId": "ListGroupsInOrganization", + "operationId": "ListOrganizationProjects", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGroupListResponse" + "$ref": "#/components/schemas/ApiOrganizationProjects" } } } @@ -2562,35 +2852,24 @@ } } }, - "description": "Gets all the groups in the current user's organization", + "description": "Gets all projects of the current user's organization", "tags": [ "Organizations" ], "security": [], - "parameters": [ - { - "description": "number of members to include", - "in": "query", - "name": "includeMembers", - "required": false, - "schema": { - "format": "double", - "type": "number" - } - } - ] + "parameters": [] } }, - "/api/v1/projects/{projectUuid}/pinned-lists/{pinnedListUuid}/items": { + "/api/v1/org/users": { "get": { - "operationId": "getPinnedItems", + "operationId": "ListOrganizationMembers", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiPinnedItems" + "$ref": "#/components/schemas/ApiOrganizationMemberProfiles" } } } @@ -2606,26 +2885,52 @@ } } }, - "description": "Get pinned items", + "description": "Gets all the members of the current user's organization", "tags": [ - "Content" + "Organizations" ], "security": [], "parameters": [ { - "description": "project uuid", - "in": "path", - "name": "projectUuid", - "required": true, + "in": "query", + "name": "includeGroups", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, + { + "in": "query", + "name": "pageSize", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, + { + "in": "query", + "name": "page", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, + { + "in": "query", + "name": "searchQuery", + "required": false, "schema": { "type": "string" } }, { - "description": "the list uuid for the pinned items", - "in": "path", - "name": "pinnedListUuid", - "required": true, + "description": "filter users who can view this project", + "in": "query", + "name": "projectUuid", + "required": false, "schema": { "type": "string" } @@ -2633,16 +2938,16 @@ ] } }, - "/api/v1/projects/{projectUuid}/pinned-lists/{pinnedListUuid}/items/order": { - "patch": { - "operationId": "updatePinnedItemsOrder", + "/api/v1/org/users/{userUuid}": { + "get": { + "operationId": "GetOrganizationMemberByUuid", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiPinnedItems" + "$ref": "#/components/schemas/ApiOrganizationMemberProfile" } } } @@ -2658,58 +2963,32 @@ } } }, - "description": "Update pinned items order", + "description": "Get the member profile for a user in the current user's organization by uuid", "tags": [ - "Content" + "Organizations" ], "security": [], "parameters": [ { - "description": "project uuid", - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "the list uuid for the pinned items", + "description": "the uuid of the user", "in": "path", - "name": "pinnedListUuid", + "name": "userUuid", "required": true, "schema": { - "type": "string" - } - } - ], - "requestBody": { - "description": "the new order of the pinned items", - "required": true, - "content": { - "application/json": { - "schema": { - "items": { - "$ref": "#/components/schemas/UpdatePinnedItemOrder" - }, - "type": "array", - "description": "the new order of the pinned items" - } + "$ref": "#/components/schemas/UUID" } } - } - } - }, - "/api/v1/projects/{projectUuid}": { - "get": { - "operationId": "GetProject", + ] + }, + "patch": { + "operationId": "UpdateOrganizationMember", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiProjectResponse" + "$ref": "#/components/schemas/ApiOrganizationMemberProfile" } } } @@ -2725,33 +3004,47 @@ } } }, - "description": "Get a project of an organiztion", + "description": "Updates the membership profile for a user in the current user's organization", "tags": [ - "Projects" + "Roles & Permissions", + "Organizations" ], "security": [], "parameters": [ { + "description": "the uuid of the user to update", "in": "path", - "name": "projectUuid", + "name": "userUuid", "required": true, "schema": { "type": "string" } } - ] + ], + "requestBody": { + "description": "the new membership profile", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/OrganizationMemberProfileUpdate", + "description": "the new membership profile" + } + } + } + } } }, - "/api/v1/projects/{projectUuid}/charts": { - "get": { - "operationId": "ListChartsInProject", + "/api/v1/org/user/{userUuid}": { + "delete": { + "operationId": "DeleteOrganizationMember", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiChartListResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -2767,16 +3060,16 @@ } } }, - "description": "List all charts in a project", + "description": "Deletes a user from the current user's organization", "tags": [ - "Projects" + "Organizations" ], "security": [], "parameters": [ { - "description": "The uuid of the project to get charts for", + "description": "the uuid of the user to delete", "in": "path", - "name": "projectUuid", + "name": "userUuid", "required": true, "schema": { "type": "string" @@ -2785,16 +3078,16 @@ ] } }, - "/api/v1/projects/{projectUuid}/chart-summaries": { + "/api/v1/org/allowedEmailDomains": { "get": { - "operationId": "ListChartSummariesInProject", + "operationId": "ListOrganizationEmailDomains", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiChartSummaryListResponse" + "$ref": "#/components/schemas/ApiOrganizationAllowedEmailDomains" } } } @@ -2810,34 +3103,22 @@ } } }, - "description": "List all charts summaries in a project", + "description": "Gets the allowed email domains for the current user's organization", "tags": [ - "Projects" + "Organizations" ], "security": [], - "parameters": [ - { - "description": "The uuid of the project to get charts for", - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" - } - } - ] - } - }, - "/api/v1/projects/{projectUuid}/spaces": { - "get": { - "operationId": "ListSpacesInProject", + "parameters": [] + }, + "patch": { + "operationId": "UpdateOrganizationEmailDomains", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSpaceSummaryListResponse" + "$ref": "#/components/schemas/ApiOrganizationAllowedEmailDomains" } } } @@ -2853,32 +3134,36 @@ } } }, - "description": "List all spaces in a project", + "description": "Updates the allowed email domains for the current user's organization", "tags": [ - "Projects" + "Organizations" ], "security": [], - "parameters": [ - { - "description": "The uuid of the project to get spaces for", - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" + "parameters": [], + "requestBody": { + "description": "the new allowed email domains", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pick_AllowedEmailDomains.Exclude_keyofAllowedEmailDomains.organizationUuid__", + "description": "the new allowed email domains" + } } } - ] - }, + } + } + }, + "/api/v1/org/groups": { "post": { - "operationId": "CreateSpaceInProject", + "operationId": "CreateGroupInOrganization", "responses": { "200": { - "description": "Created", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSpaceResponse" + "$ref": "#/components/schemas/ApiCreateGroupResponse" } } } @@ -2894,45 +3179,34 @@ } } }, - "description": "Create a new space inside a project", + "description": "Creates a new group in the current user's organization", "tags": [ - "Roles & Permissions", - "Spaces" + "Organizations" ], "security": [], - "parameters": [ - { - "description": "The uuid of the space's parent project", - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { + "description": "the new group details", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateSpace" + "$ref": "#/components/schemas/CreateGroup", + "description": "the new group details" } } } } - } - }, - "/api/v1/projects/{projectUuid}/access": { + }, "get": { - "operationId": "GetProjectAccessList", + "operationId": "ListGroupsInOrganization", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiProjectAccessListResponse" + "$ref": "#/components/schemas/ApiGroupListResponse" } } } @@ -2948,32 +3222,113 @@ } } }, - "description": "Get access list for a project. This is a list of users that have been explictly granted access to the project.\nThere may be other users that have access to the project via their organization membership.", + "description": "Gets all the groups in the current user's organization", "tags": [ - "Roles & Permissions", - "Projects" + "Organizations" + ], + "security": [], + "parameters": [ + { + "in": "query", + "name": "page", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, + { + "in": "query", + "name": "pageSize", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, + { + "description": "number of members to include", + "in": "query", + "name": "includeMembers", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, + { + "in": "query", + "name": "searchQuery", + "required": false, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/projects/{projectUuid}/pinned-lists/{pinnedListUuid}/items": { + "get": { + "operationId": "getPinnedItems", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiPinnedItems" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get pinned items", + "tags": [ + "Content" ], "security": [], "parameters": [ { + "description": "project uuid", "in": "path", "name": "projectUuid", "required": true, "schema": { "type": "string" } + }, + { + "description": "the list uuid for the pinned items", + "in": "path", + "name": "pinnedListUuid", + "required": true, + "schema": { + "type": "string" + } } ] - }, - "post": { - "operationId": "GrantProjectAccessToUser", + } + }, + "/api/v1/projects/{projectUuid}/pinned-lists/{pinnedListUuid}/items/order": { + "patch": { + "operationId": "updatePinnedItemsOrder", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiPinnedItems" } } } @@ -2989,44 +3344,58 @@ } } }, - "description": "Grant a user access to a project", + "description": "Update pinned items order", "tags": [ - "Roles & Permissions", - "Projects" + "Content" ], "security": [], "parameters": [ { + "description": "project uuid", "in": "path", "name": "projectUuid", "required": true, "schema": { "type": "string" } + }, + { + "description": "the list uuid for the pinned items", + "in": "path", + "name": "pinnedListUuid", + "required": true, + "schema": { + "type": "string" + } } ], "requestBody": { + "description": "the new order of the pinned items", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateProjectMember" + "items": { + "$ref": "#/components/schemas/UpdatePinnedItemOrder" + }, + "type": "array", + "description": "the new order of the pinned items" } } } } } }, - "/api/v1/projects/{projectUuid}/user/{userUuid}": { + "/api/v1/projects/{projectUuid}": { "get": { - "operationId": "GetProjectMemberAccess", + "operationId": "GetProject", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGetProjectMemberResponse" + "$ref": "#/components/schemas/ApiProjectResponse" } } } @@ -3042,9 +3411,8 @@ } } }, - "description": "Get a project explicit member's access.\nThere may be users that have access to the project via their organization membership.\n\nNOTE:\nWe don't use the API on the frontend. Instead, we can call the API\nso that we make sure of the user's access to the project.", + "description": "Get a project of an organiztion", "tags": [ - "Roles & Permissions", "Projects" ], "security": [], @@ -3056,28 +3424,20 @@ "schema": { "type": "string" } - }, - { - "in": "path", - "name": "userUuid", - "required": true, - "schema": { - "type": "string" - } } ] } }, - "/api/v1/projects/{projectUuid}/access/{userUuid}": { - "patch": { - "operationId": "UpdateProjectAccessForUser", + "/api/v1/projects/{projectUuid}/charts": { + "get": { + "operationId": "ListChartsInProject", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiChartListResponse" } } } @@ -3093,50 +3453,34 @@ } } }, - "description": "Update a user's access to a project", + "description": "List all charts in a project", "tags": [ - "Roles & Permissions", "Projects" ], "security": [], "parameters": [ { + "description": "The uuid of the project to get charts for", "in": "path", "name": "projectUuid", "required": true, "schema": { "type": "string" } - }, - { - "in": "path", - "name": "userUuid", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateProjectMember" - } - } } - } - }, - "delete": { - "operationId": "RevokeProjectAccessForUser", + ] + } + }, + "/api/v1/projects/{projectUuid}/chart-summaries": { + "get": { + "operationId": "ListChartSummariesInProject", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiChartSummaryListResponse" } } } @@ -3152,14 +3496,14 @@ } } }, - "description": "Remove a user's access to a project", + "description": "List all charts summaries in a project", "tags": [ - "Roles & Permissions", "Projects" ], "security": [], "parameters": [ { + "description": "The uuid of the project to get charts for", "in": "path", "name": "projectUuid", "required": true, @@ -3168,26 +3512,27 @@ } }, { - "in": "path", - "name": "userUuid", - "required": true, + "description": "Whether to exclude charts that are saved in dashboards", + "in": "query", + "name": "excludeChartsSavedInDashboard", + "required": false, "schema": { - "type": "string" + "type": "boolean" } } ] } }, - "/api/v1/projects/{projectUuid}/groupAccesses": { + "/api/v1/projects/{projectUuid}/spaces": { "get": { - "operationId": "GetProjectGroupAccesses", + "operationId": "ListSpacesInProject", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGetProjectGroupAccesses" + "$ref": "#/components/schemas/ApiSpaceSummaryListResponse" } } } @@ -3203,13 +3548,14 @@ } } }, - "description": "List group access for projects", + "description": "List all spaces in a project", "tags": [ "Projects" ], "security": [], "parameters": [ { + "description": "The uuid of the project to get spaces for", "in": "path", "name": "projectUuid", "required": true, @@ -3218,34 +3564,16 @@ } } ] - } - }, - "/api/v1/projects/{projectUuid}/sqlQuery": { + }, "post": { - "operationId": "RunSqlQuery", + "operationId": "CreateSpaceInProject", "responses": { "200": { - "description": "Success", + "description": "Created", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/ApiSqlQueryResults" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" + "$ref": "#/components/schemas/ApiSpaceResponse" } } } @@ -3261,15 +3589,15 @@ } } }, - "description": "Run a raw sql query against the project's warehouse connection", + "description": "Create a new space inside a project", "tags": [ - "Exploring", - "Projects" + "Roles & Permissions", + "Spaces" ], "security": [], "parameters": [ { - "description": "The uuid of the project to run the query against", + "description": "The uuid of the space's parent project", "in": "path", "name": "projectUuid", "required": true, @@ -3279,37 +3607,27 @@ } ], "requestBody": { - "description": "The query to run", "required": true, "content": { "application/json": { "schema": { - "properties": { - "sql": { - "type": "string" - } - }, - "required": [ - "sql" - ], - "type": "object", - "description": "The query to run" + "$ref": "#/components/schemas/CreateSpace" } } } } } }, - "/api/v1/projects/{projectUuid}/calculate-total": { - "post": { - "operationId": "CalculateTotalFromQuery", + "/api/v1/projects/{projectUuid}/access": { + "get": { + "operationId": "GetProjectAccessList", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiCalculateTotalResponse" + "$ref": "#/components/schemas/ApiProjectAccessListResponse" } } } @@ -3325,14 +3643,14 @@ } } }, - "description": "Calculate all metric totals from a metricQuery", + "description": "Get access list for a project. This is a list of users that have been explictly granted access to the project.\nThere may be other users that have access to the project via their organization membership.", "tags": [ + "Roles & Permissions", "Projects" ], "security": [], "parameters": [ { - "description": "The uuid of the project to get charts for", "in": "path", "name": "projectUuid", "required": true, @@ -3340,46 +3658,17 @@ "type": "string" } } - ], - "requestBody": { - "description": "The metric query to calculate totals for", - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CalculateTotalFromQuery", - "description": "The metric query to calculate totals for" - } - } - } - } - } - }, - "/api/v1/projects/{projectUuid}/user-credentials": { - "get": { - "operationId": "getUserWarehouseCredentialsPreference", + ] + }, + "post": { + "operationId": "GrantProjectAccessToUser", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/UserWarehouseCredentials" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "status" - ], - "type": "object" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -3395,7 +3684,9 @@ } } }, + "description": "Grant a user access to a project", "tags": [ + "Roles & Permissions", "Projects" ], "security": [], @@ -3408,19 +3699,29 @@ "type": "string" } } - ] + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateProjectMember" + } + } + } + } } }, - "/api/v1/projects/{projectUuid}/user-credentials/{userWarehouseCredentialsUuid}": { - "patch": { - "operationId": "updateUserWarehouseCredentialsPreference", + "/api/v1/projects/{projectUuid}/user/{userUuid}": { + "get": { + "operationId": "GetProjectMemberAccess", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiGetProjectMemberResponse" } } } @@ -3436,7 +3737,9 @@ } } }, + "description": "Get a project explicit member's access.\nThere may be users that have access to the project via their organization membership.\n\nNOTE:\nWe don't use the API on the frontend. Instead, we can call the API\nso that we make sure of the user's access to the project.", "tags": [ + "Roles & Permissions", "Projects" ], "security": [], @@ -3451,7 +3754,7 @@ }, { "in": "path", - "name": "userWarehouseCredentialsUuid", + "name": "userUuid", "required": true, "schema": { "type": "string" @@ -3460,63 +3763,16 @@ ] } }, - "/api/v1/projects/{projectUuid}/custom-metrics": { - "get": { - "operationId": "getCustomMetrics", + "/api/v1/projects/{projectUuid}/access/{userUuid}": { + "patch": { + "operationId": "UpdateProjectAccessForUser", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "properties": { - "results": { - "items": { - "properties": { - "chartUrl": { - "type": "string" - }, - "chartLabel": { - "type": "string" - }, - "yml": { - "type": "string" - }, - "modelName": { - "type": "string" - }, - "label": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "chartUrl", - "chartLabel", - "yml", - "modelName", - "label", - "name" - ], - "type": "object" - }, - "type": "array" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -3532,7 +3788,9 @@ } } }, + "description": "Update a user's access to a project", "tags": [ + "Roles & Permissions", "Projects" ], "security": [], @@ -3544,13 +3802,29 @@ "schema": { "type": "string" } + }, + { + "in": "path", + "name": "userUuid", + "required": true, + "schema": { + "type": "string" + } } - ] - } - }, - "/api/v1/projects/{projectUuid}/metadata": { - "patch": { - "operationId": "updateProjectMetadata", + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateProjectMember" + } + } + } + } + }, + "delete": { + "operationId": "RevokeProjectAccessForUser", "responses": { "200": { "description": "Success", @@ -3573,8 +3847,9 @@ } } }, - "description": "Update project metadata like upstreamProjectUuid\nwe don't trigger a compile, so not for updating warehouse or credentials", + "description": "Remove a user's access to a project", "tags": [ + "Roles & Permissions", "Projects" ], "security": [], @@ -3586,30 +3861,28 @@ "schema": { "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateMetadata" - } + }, + { + "in": "path", + "name": "userUuid", + "required": true, + "schema": { + "type": "string" } } - } + ] } }, - "/api/v1/projects/{projectUuid}/semantic-layer-connection": { - "patch": { - "operationId": "updateProjectSemanticLayerConnection", + "/api/v1/projects/{projectUuid}/groupAccesses": { + "get": { + "operationId": "GetProjectGroupAccesses", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiGetProjectGroupAccesses" } } } @@ -3625,6 +3898,7 @@ } } }, + "description": "List group access for projects", "tags": [ "Projects" ], @@ -3638,29 +3912,35 @@ "type": "string" } } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SemanticLayerConnection" - } - } - } - } + ] } }, - "/api/v1/projects/{projectUuid}/explores/{exploreId}/runUnderlyingDataQuery": { + "/api/v1/projects/{projectUuid}/sqlQuery": { "post": { - "operationId": "postRunUnderlyingDataQuery", + "operationId": "RunSqlQuery", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiRunQueryResponse" + "properties": { + "results": { + "$ref": "#/components/schemas/ApiSqlQueryResults" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" } } } @@ -3676,55 +3956,55 @@ } } }, - "description": "Run a query for underlying data results", + "description": "Run a raw sql query against the project's warehouse connection", "tags": [ - "Exploring" + "Exploring", + "Projects" ], "security": [], "parameters": [ { - "description": "The uuid of the project", + "description": "The uuid of the project to run the query against", "in": "path", "name": "projectUuid", "required": true, "schema": { "type": "string" } - }, - { - "description": "table name", - "in": "path", - "name": "exploreId", - "required": true, - "schema": { - "type": "string" - } } ], "requestBody": { - "description": "metricQuery for the chart to run", + "description": "The query to run", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/MetricQueryRequest", - "description": "metricQuery for the chart to run" + "properties": { + "sql": { + "type": "string" + } + }, + "required": [ + "sql" + ], + "type": "object", + "description": "The query to run" } } } } } }, - "/api/v1/projects/{projectUuid}/explores/{exploreId}/runQuery": { + "/api/v1/projects/{projectUuid}/calculate-total": { "post": { - "operationId": "RunMetricQuery", + "operationId": "CalculateTotalFromQuery", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiRunQueryResponse" + "$ref": "#/components/schemas/ApiCalculateTotalResponse" } } } @@ -3740,55 +4020,61 @@ } } }, - "description": "Run a query for explore", + "description": "Calculate all metric totals from a metricQuery", "tags": [ - "Exploring" + "Projects" ], "security": [], "parameters": [ { - "description": "The uuid of the project", + "description": "The uuid of the project to get charts for", "in": "path", "name": "projectUuid", "required": true, "schema": { "type": "string" } - }, - { - "description": "table name", - "in": "path", - "name": "exploreId", - "required": true, - "schema": { - "type": "string" - } } ], "requestBody": { - "description": "metricQuery for the chart to run", + "description": "The metric query to calculate totals for", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/MetricQueryRequest", - "description": "metricQuery for the chart to run" + "$ref": "#/components/schemas/CalculateTotalFromQuery", + "description": "The metric query to calculate totals for" } } } } } }, - "/api/v1/saved/{chartUuid}/results": { - "post": { - "operationId": "PostChartResults", + "/api/v1/projects/{projectUuid}/user-credentials": { + "get": { + "operationId": "getUserWarehouseCredentialsPreference", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiRunQueryResponse" + "properties": { + "results": { + "$ref": "#/components/schemas/UserWarehouseCredentials" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "status" + ], + "type": "object" } } } @@ -3804,49 +4090,32 @@ } } }, - "description": "Run a query for a chart", "tags": [ - "Charts" + "Projects" ], "security": [], "parameters": [ { - "description": "chartUuid for the chart to run", "in": "path", - "name": "chartUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" } } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "properties": { - "invalidateCache": { - "type": "boolean" - } - }, - "type": "object" - } - } - } - } + ] } }, - "/api/v1/saved/{chartUuid}/chart-and-results": { - "post": { - "operationId": "PostDashboardTile", + "/api/v1/projects/{projectUuid}/user-credentials/{userWarehouseCredentialsUuid}": { + "patch": { + "operationId": "updateUserWarehouseCredentialsPreference", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiRunQueryResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -3863,67 +4132,86 @@ } }, "tags": [ - "Charts" + "Projects" ], "security": [], "parameters": [ { "in": "path", - "name": "chartUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "properties": { - "autoRefresh": { - "type": "boolean" - }, - "granularity": { - "$ref": "#/components/schemas/DateGranularity" - }, - "dashboardUuid": { - "type": "string" - }, - "dashboardSorts": { - "items": { - "$ref": "#/components/schemas/SortField" - }, - "type": "array" - }, - "invalidateCache": { - "type": "boolean" - }, - "dashboardFilters": {} - }, - "required": [ - "dashboardUuid", - "dashboardSorts", - "dashboardFilters" - ], - "type": "object" - } + }, + { + "in": "path", + "name": "userWarehouseCredentialsUuid", + "required": true, + "schema": { + "type": "string" } } - } + ] } }, - "/api/v1/saved/{chartUuid}/history": { + "/api/v1/projects/{projectUuid}/custom-metrics": { "get": { - "operationId": "GetChartHistory", + "operationId": "getCustomMetrics", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGetChartHistoryResponse" + "properties": { + "results": { + "items": { + "properties": { + "chartUrl": { + "type": "string" + }, + "chartLabel": { + "type": "string" + }, + "yml": { + "type": "string" + }, + "modelName": { + "type": "string" + }, + "label": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "chartUrl", + "chartLabel", + "yml", + "modelName", + "label", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" } } } @@ -3939,16 +4227,14 @@ } } }, - "description": "Get chart version history from last 30 days", "tags": [ - "Charts" + "Projects" ], "security": [], "parameters": [ { - "description": "chartUuid for the chart", "in": "path", - "name": "chartUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" @@ -3957,16 +4243,16 @@ ] } }, - "/api/v1/saved/{chartUuid}/version/{versionUuid}": { - "get": { - "operationId": "GetChartVersion", + "/api/v1/projects/{projectUuid}/metadata": { + "patch": { + "operationId": "updateProjectMetadata", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGetChartVersionResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -3982,43 +4268,43 @@ } } }, - "description": "Get chart version", + "description": "Update project metadata like upstreamProjectUuid\nwe don't trigger a compile, so not for updating warehouse or credentials", "tags": [ - "Charts" + "Projects" ], "security": [], "parameters": [ { - "description": "chartUuid for the chart", "in": "path", - "name": "chartUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" } - }, - { - "description": "versionUuid for the chart version", - "in": "path", - "name": "versionUuid", - "required": true, - "schema": { - "type": "string" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateMetadata" + } } } - ] + } } }, - "/api/v1/saved/{chartUuid}/version/{versionUuid}/results": { - "post": { - "operationId": "getChartVersionResults", + "/api/v1/projects/{projectUuid}/semantic-layer-connection": { + "patch": { + "operationId": "updateProjectSemanticLayerConnection", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiRunQueryResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -4034,36 +4320,33 @@ } } }, - "description": "Run a query for a chart version", "tags": [ - "Charts" + "Projects" ], "security": [], "parameters": [ { - "description": "chartUuid for the chart to run", "in": "path", - "name": "chartUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" } - }, - { - "description": "versionUuid for the chart version", - "in": "path", - "name": "versionUuid", - "required": true, - "schema": { - "type": "string" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SemanticLayerConnectionUpdate" + } } } - ] - } - }, - "/api/v1/saved/{chartUuid}/rollback/{versionUuid}": { - "post": { - "operationId": "postChartVersionRollback", + } + }, + "delete": { + "operationId": "deleteProjectSemanticLayerConnection", "responses": { "200": { "description": "Success", @@ -4086,25 +4369,14 @@ } } }, - "description": "Rollback chart to version", "tags": [ - "Charts" + "Projects" ], "security": [], "parameters": [ { - "description": "chartUuid for the chart to run", "in": "path", - "name": "chartUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "versionUuid for the chart version", - "in": "path", - "name": "versionUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" @@ -4113,16 +4385,16 @@ ] } }, - "/api/v1/saved/{chartUuid}/calculate-total": { - "post": { - "operationId": "CalculateTotalFromSavedChart", + "/api/v1/projects/{projectUuid}/dashboards": { + "get": { + "operationId": "getDashboards", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiCalculateTotalResponse" + "$ref": "#/components/schemas/ApiGetDashboardsResponse" } } } @@ -4138,50 +4410,30 @@ } } }, - "description": "Calculate metric totals from a saved chart", "tags": [ - "Charts" + "Projects" ], "security": [], "parameters": [ { - "description": "chartUuid for the chart to run", "in": "path", - "name": "chartUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" } } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "properties": { - "invalidateCache": { - "type": "boolean" - }, - "dashboardFilters": {} - }, - "type": "object" - } - } - } - } - } - }, - "/api/v1/saved/{chartUuid}/promote": { + ] + }, "post": { - "operationId": "promoteChart", + "operationId": "createDashboard", "responses": { - "200": { - "description": "Success", + "201": { + "description": "Created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiPromoteChartResponse" + "$ref": "#/components/schemas/ApiCreateDashboardResponse" } } } @@ -4197,34 +4449,55 @@ } } }, - "description": "Promote chart to its upstream project", "tags": [ - "Charts" + "Projects" ], "security": [], "parameters": [ { - "description": "chartUuid for the chart to run", "in": "path", - "name": "chartUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" } + }, + { + "in": "query", + "name": "duplicateFrom", + "required": false, + "schema": { + "type": "string" + } } - ] - } - }, - "/api/v1/saved/{chartUuid}/promoteDiff": { - "get": { - "operationId": "promoteChartDiff", + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "anyOf": [ + { + "$ref": "#/components/schemas/DuplicateDashboardParams" + }, + { + "$ref": "#/components/schemas/CreateDashboard" + } + ] + } + } + } + } + }, + "patch": { + "operationId": "updateDashboards", "responses": { "200": { - "description": "Success", + "description": "Updated", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiPromotionChangesResponse" + "$ref": "#/components/schemas/ApiUpdateDashboardsResponse" } } } @@ -4240,34 +4513,61 @@ } } }, - "description": "Get diff from chart to promote", "tags": [ - "Charts" + "Projects" ], "security": [], "parameters": [ { - "description": "chartUuid for the chart to check diff", "in": "path", - "name": "chartUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" } } - ] + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/Pick_Dashboard.uuid-or-name-or-description-or-spaceUuid_" + }, + "type": "array" + } + } + } + } } }, - "/api/v1/schedulers/{projectUuid}/logs": { - "get": { - "operationId": "getSchedulerLogs", + "/api/v1/projects/{projectUuid}/createPreview": { + "post": { + "operationId": "createPreview", "responses": { "200": { - "description": "Success", + "description": "Created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSchedulerLogsResponse" + "properties": { + "results": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" } } } @@ -4283,9 +4583,8 @@ } } }, - "description": "Get scheduled logs", "tags": [ - "Schedulers" + "Projects" ], "security": [], "parameters": [ @@ -4297,19 +4596,41 @@ "type": "string" } } - ] + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "copyContent": { + "type": "boolean" + }, + "name": { + "type": "string" + } + }, + "required": [ + "copyContent", + "name" + ], + "type": "object" + } + } + } + } } }, - "/api/v1/schedulers/{schedulerUuid}": { - "get": { - "operationId": "getScheduler", + "/api/v1/projects/{projectUuid}/schedulerSettings": { + "patch": { + "operationId": "updateSchedulerSettings", "responses": { "200": { - "description": "Success", + "description": "Updated", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSchedulerAndTargetsResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -4325,32 +4646,42 @@ } } }, - "description": "Get a scheduler", "tags": [ - "Schedulers" + "Projects" ], "security": [], "parameters": [ { - "description": "The uuid of the scheduler to update", "in": "path", - "name": "schedulerUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" } } - ] - }, - "patch": { - "operationId": "updateScheduler", + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSchedulerSettings" + } + } + } + } + } + }, + "/api/v1/projects/{projectUuid}/tags": { + "post": { + "operationId": "createTag", "responses": { "201": { - "description": "Updated", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSchedulerAndTargetsResponse" + "$ref": "#/components/schemas/ApiCreateTagResponse" } } } @@ -4366,16 +4697,14 @@ } } }, - "description": "Update a scheduler", "tags": [ - "Schedulers" + "Projects" ], "security": [], "parameters": [ { - "description": "The uuid of the scheduler to update", "in": "path", - "name": "schedulerUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" @@ -4383,39 +4712,25 @@ } ], "requestBody": { - "description": "the new scheduler data", "required": true, "content": { "application/json": { "schema": { - "description": "the new scheduler data" + "$ref": "#/components/schemas/Pick_Tag.name-or-color_" } } } } }, - "delete": { - "operationId": "deleteScheduler", + "get": { + "operationId": "getTags", "responses": { - "201": { - "description": "Deleted", + "200": { + "description": "Success", "content": { "application/json": { "schema": { - "properties": { - "results": {}, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "status" - ], - "type": "object" + "$ref": "#/components/schemas/ApiGetTagsResponse" } } } @@ -4431,16 +4746,14 @@ } } }, - "description": "Delete a scheduler", "tags": [ - "Schedulers" + "Projects" ], "security": [], "parameters": [ { - "description": "The uuid of the scheduler to delete", "in": "path", - "name": "schedulerUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" @@ -4449,16 +4762,16 @@ ] } }, - "/api/v1/schedulers/{schedulerUuid}/enabled": { - "patch": { - "operationId": "updateSchedulerEnabled", + "/api/v1/projects/{projectUuid}/tags/{tagUuid}": { + "delete": { + "operationId": "deleteTag", "responses": { - "201": { - "description": "Updated", + "204": { + "description": "Deleted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSchedulerAndTargetsResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -4474,54 +4787,30 @@ } } }, - "description": "Set scheduler enabled", "tags": [ - "Schedulers" + "Projects" ], "security": [], "parameters": [ { - "description": "The uuid of the scheduler to update", "in": "path", - "name": "schedulerUuid", + "name": "tagUuid", "required": true, "schema": { "type": "string" } } - ], - "requestBody": { - "description": "the enabled flag", - "required": true, - "content": { - "application/json": { - "schema": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" - ], - "type": "object", - "description": "the enabled flag" - } - } - } - } - } - }, - "/api/v1/schedulers/{schedulerUuid}/jobs": { - "get": { - "operationId": "getScheduledJobs", + ] + }, + "patch": { + "operationId": "updateTag", "responses": { "200": { - "description": "Success", + "description": "Updated", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiScheduledJobsResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -4537,34 +4826,42 @@ } } }, - "description": "Get scheduled jobs", "tags": [ - "Schedulers" + "Projects" ], "security": [], "parameters": [ { - "description": "The uuid of the scheduler to update", "in": "path", - "name": "schedulerUuid", + "name": "tagUuid", "required": true, "schema": { "type": "string" } } - ] + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Partial_Pick_DbTag.name-or-color__" + } + } + } + } } }, - "/api/v1/schedulers/job/{jobId}/status": { + "/api/v1/projects/{projectUuid}/charts/code": { "get": { - "operationId": "getSchedulerJobStatus", + "operationId": "getChartsAsCode", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiJobStatusResponse" + "$ref": "#/components/schemas/ApiChartAsCodeListResponse" } } } @@ -4580,16 +4877,15 @@ } } }, - "description": "Get a generic job status\nThis method can be used when polling from the frontend", + "description": "Charts as code", "tags": [ - "Schedulers" + "Projects" ], "security": [], "parameters": [ { - "description": "the jobId for the status to check", "in": "path", - "name": "jobId", + "name": "projectUuid", "required": true, "schema": { "type": "string" @@ -4598,16 +4894,16 @@ ] } }, - "/api/v1/schedulers/send": { - "post": { - "operationId": "sendScheduler", + "/api/v1/projects/{projectUuid}/dashboards/code": { + "get": { + "operationId": "getDashboardsAsCode", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiTestSchedulerResponse" + "$ref": "#/components/schemas/ApiDashboardAsCodeListResponse" } } } @@ -4623,35 +4919,32 @@ } } }, - "description": "Send a scheduler now before saving it", "tags": [ - "Schedulers" + "Projects" ], "security": [], - "parameters": [], - "requestBody": { - "description": "the create scheduler data", - "required": true, - "content": { - "application/json": { - "schema": { - "description": "the create scheduler data" - } + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" } } - } + ] } }, - "/api/v1/share/{nanoId}": { - "get": { - "operationId": "getShareUrl", + "/api/v1/projects/{projectUuid}/charts/{slug}/code": { + "post": { + "operationId": "upsertChartAsCode", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiShareResponse" + "$ref": "#/components/schemas/ApiChartAsCodeUpsertResponse" } } } @@ -4667,34 +4960,65 @@ } } }, - "description": "Get a share url from a short url id", "tags": [ - "Share links" + "Projects" ], "security": [], "parameters": [ { - "description": "the short id for the share url", "in": "path", - "name": "nanoId", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "slug", "required": true, "schema": { "type": "string" } } - ] + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_ChartAsCode.Exclude_keyofChartAsCode.metricQuery-or-chartConfig__" + }, + { + "properties": { + "metricQuery": {}, + "chartConfig": {} + }, + "required": [ + "metricQuery", + "chartConfig" + ], + "type": "object" + } + ] + } + } + } + } } }, - "/api/v1/share": { + "/api/v1/projects/{projectUuid}/dashboards/{slug}/code": { "post": { - "operationId": "CreateShareUrl", + "operationId": "upsertDashboardAsCode", "responses": { - "201": { - "description": "Created", + "200": { + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiShareResponse" + "$ref": "#/components/schemas/ApiDashboardAsCodeUpsertResponse" } } } @@ -4710,36 +5034,69 @@ } } }, - "description": "Given a full URL generates a short url id that can be used for sharing", "tags": [ - "Share links" + "Projects" ], "security": [], - "parameters": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "slug", + "required": true, + "schema": { + "type": "string" + } + } + ], "requestBody": { - "description": "a full URL used to generate a short url id", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Pick_ShareUrl.path-or-params_", - "description": "a full URL used to generate a short url id" + "allOf": [ + { + "$ref": "#/components/schemas/Pick_DashboardAsCode.Exclude_keyofDashboardAsCode.filters-or-tiles-or-description__" + }, + { + "properties": { + "description": { + "type": "string", + "nullable": true + }, + "tiles": {}, + "filters": {} + }, + "required": [ + "tiles", + "filters" + ], + "type": "object" + } + ] } } } } } }, - "/api/v1/slack/channels": { - "get": { - "operationId": "getSlackChannels", + "/api/v1/projects/{projectUuid}/explores/{exploreId}/runUnderlyingDataQuery": { + "post": { + "operationId": "postRunUnderlyingDataQuery", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSlackChannelsResponse" + "$ref": "#/components/schemas/ApiRunQueryResponse" } } } @@ -4755,67 +5112,55 @@ } } }, - "description": "Get slack channels", + "description": "Run a query for underlying data results", "tags": [ - "Integrations" + "Exploring" ], "security": [], - "parameters": [] - } - }, - "/api/v1/slack/custom-settings": { - "put": { - "operationId": "UpdateCustomSettings", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiSlackCustomSettingsResponse" - } - } + "parameters": [ + { + "description": "The uuid of the project", + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" } }, - "default": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiErrorPayload" - } - } + { + "description": "table name", + "in": "path", + "name": "exploreId", + "required": true, + "schema": { + "type": "string" } } - }, - "description": "Update slack notification channel to send notifications to scheduled jobs fail", - "tags": [ - "Integrations" ], - "security": [], - "parameters": [], "requestBody": { + "description": "metricQuery for the chart to run", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SlackAppCustomSettings" + "$ref": "#/components/schemas/MetricQueryRequest", + "description": "metricQuery for the chart to run" } } } } } }, - "/api/v1/projects/{projectUuid}/spaces/{spaceUuid}": { - "get": { - "operationId": "GetSpace", + "/api/v1/projects/{projectUuid}/explores/{exploreId}/runQuery": { + "post": { + "operationId": "RunMetricQuery", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSpaceResponse" + "$ref": "#/components/schemas/ApiRunQueryResponse" } } } @@ -4831,14 +5176,14 @@ } } }, - "description": "Get details for a space in a project", + "description": "Run a query for explore", "tags": [ - "Spaces" + "Exploring" ], "security": [], "parameters": [ { - "description": "The uuid of the space's parent project", + "description": "The uuid of the project", "in": "path", "name": "projectUuid", "required": true, @@ -4847,25 +5192,39 @@ } }, { - "description": "The uuid of the space to get", + "description": "table name", "in": "path", - "name": "spaceUuid", + "name": "exploreId", "required": true, "schema": { "type": "string" } } - ] - }, - "delete": { - "operationId": "DeleteSpace", + ], + "requestBody": { + "description": "metricQuery for the chart to run", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetricQueryRequest", + "description": "metricQuery for the chart to run" + } + } + } + } + } + }, + "/api/v1/saved/{chartUuid}/results": { + "post": { + "operationId": "PostChartResults", "responses": { - "204": { - "description": "Deleted", + "200": { + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiRunQueryResponse" } } } @@ -4881,41 +5240,49 @@ } } }, - "description": "Delete a space from a project", + "description": "Run a query for a chart", "tags": [ - "Spaces" + "Charts" ], "security": [], "parameters": [ { - "description": "The uuid of the space's parent project", + "description": "chartUuid for the chart to run", "in": "path", - "name": "projectUuid", + "name": "chartUuid", "required": true, "schema": { "type": "string" } - }, - { - "description": "The uuid of the space to delete", - "in": "path", - "name": "spaceUuid", - "required": true, - "schema": { - "type": "string" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "invalidateCache": { + "type": "boolean" + } + }, + "type": "object" + } } } - ] - }, - "patch": { - "operationId": "UpdateSpace", + } + } + }, + "/api/v1/saved/{chartUuid}/chart-and-results": { + "post": { + "operationId": "PostDashboardTile", "responses": { "200": { - "description": "Updated", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSpaceResponse" + "$ref": "#/components/schemas/ApiRunQueryResponse" } } } @@ -4931,26 +5298,14 @@ } } }, - "description": "Update a space in a project", "tags": [ - "Roles & Permissions", - "Spaces" + "Charts" ], "security": [], "parameters": [ { - "description": "The uuid of the space's parent project", - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The uuid of the space to update", "in": "path", - "name": "spaceUuid", + "name": "chartUuid", "required": true, "schema": { "type": "string" @@ -4962,23 +5317,49 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateSpace" + "properties": { + "autoRefresh": { + "type": "boolean" + }, + "granularity": { + "$ref": "#/components/schemas/DateGranularity" + }, + "dashboardUuid": { + "type": "string" + }, + "dashboardSorts": { + "items": { + "$ref": "#/components/schemas/SortField" + }, + "type": "array" + }, + "invalidateCache": { + "type": "boolean" + }, + "dashboardFilters": {} + }, + "required": [ + "dashboardUuid", + "dashboardSorts", + "dashboardFilters" + ], + "type": "object" } } } } } }, - "/api/v1/projects/{projectUuid}/spaces/{spaceUuid}/share": { - "post": { - "operationId": "AddSpaceUserAccess", + "/api/v1/saved/{chartUuid}/history": { + "get": { + "operationId": "GetChartHistory", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiGetChartHistoryResponse" } } } @@ -4994,53 +5375,34 @@ } } }, - "description": "Grant a user access to a space", + "description": "Get chart version history from last 30 days", "tags": [ - "Roles & Permissions", - "Spaces" + "Charts" ], "security": [], "parameters": [ { - "description": "The uuid of the space's parent project", - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { + "description": "chartUuid for the chart", "in": "path", - "name": "spaceUuid", + "name": "chartUuid", "required": true, "schema": { "type": "string" } } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddSpaceUserAccess" - } - } - } - } + ] } }, - "/api/v1/projects/{projectUuid}/spaces/{spaceUuid}/share/{userUuid}": { - "delete": { - "operationId": "RevokeSpaceAccessForUser", + "/api/v1/saved/{chartUuid}/version/{versionUuid}": { + "get": { + "operationId": "GetChartVersion", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiGetChartVersionResponse" } } } @@ -5056,35 +5418,25 @@ } } }, - "description": "Remove a user's access to a space", + "description": "Get chart version", "tags": [ - "Roles & Permissions", - "Spaces" + "Charts" ], "security": [], "parameters": [ { - "description": "The uuid of the space's parent project", - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The uuid of the space to update", + "description": "chartUuid for the chart", "in": "path", - "name": "spaceUuid", + "name": "chartUuid", "required": true, "schema": { "type": "string" } }, { - "description": "The uuid of the user to revoke access from", + "description": "versionUuid for the chart version", "in": "path", - "name": "userUuid", + "name": "versionUuid", "required": true, "schema": { "type": "string" @@ -5093,16 +5445,16 @@ ] } }, - "/api/v1/projects/{projectUuid}/spaces/{spaceUuid}/group/share": { + "/api/v1/saved/{chartUuid}/version/{versionUuid}/results": { "post": { - "operationId": "AddSpaceGroupAccess", + "operationId": "getChartVersionResults", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiRunQueryResponse" } } } @@ -5118,47 +5470,36 @@ } } }, - "description": "Grant a group access to a space", + "description": "Run a query for a chart version", "tags": [ - "Roles & Permissions", - "Spaces" + "Charts" ], "security": [], "parameters": [ { - "description": "The uuid of the space's parent project", + "description": "chartUuid for the chart to run", "in": "path", - "name": "projectUuid", + "name": "chartUuid", "required": true, "schema": { "type": "string" } }, { - "description": "The uuid of the space to update", + "description": "versionUuid for the chart version", "in": "path", - "name": "spaceUuid", + "name": "versionUuid", "required": true, "schema": { "type": "string" } } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AddSpaceGroupAccess" - } - } - } - } + ] } }, - "/api/v1/projects/{projectUuid}/spaces/{spaceUuid}/group/share/{groupUuid}": { - "delete": { - "operationId": "RevokeGroupSpaceAccess", + "/api/v1/saved/{chartUuid}/rollback/{versionUuid}": { + "post": { + "operationId": "postChartVersionRollback", "responses": { "200": { "description": "Success", @@ -5181,35 +5522,25 @@ } } }, - "description": "Remove a group's access to a space", + "description": "Rollback chart to version", "tags": [ - "Roles & Permissions", - "Spaces" + "Charts" ], "security": [], "parameters": [ { - "description": "The uuid of the space's parent project", - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "The uuid of the space to update", + "description": "chartUuid for the chart to run", "in": "path", - "name": "spaceUuid", + "name": "chartUuid", "required": true, "schema": { "type": "string" } }, { - "description": "The uuid of the group to revoke access from", + "description": "versionUuid for the chart version", "in": "path", - "name": "groupUuid", + "name": "versionUuid", "required": true, "schema": { "type": "string" @@ -5218,16 +5549,16 @@ ] } }, - "/api/v1/ssh/key-pairs": { + "/api/v1/saved/{chartUuid}/calculate-total": { "post": { - "operationId": "createSshKeyPair", + "operationId": "CalculateTotalFromSavedChart", "responses": { - "201": { + "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSshKeyPairResponse" + "$ref": "#/components/schemas/ApiCalculateTotalResponse" } } } @@ -5243,23 +5574,50 @@ } } }, + "description": "Calculate metric totals from a saved chart", "tags": [ - "SSH Keypairs" + "Charts" ], "security": [], - "parameters": [] + "parameters": [ + { + "description": "chartUuid for the chart to run", + "in": "path", + "name": "chartUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "invalidateCache": { + "type": "boolean" + }, + "dashboardFilters": {} + }, + "type": "object" + } + } + } + } } }, - "/api/v1/org/attributes": { - "get": { - "operationId": "getUserAttributes", + "/api/v1/saved/{chartUuid}/promote": { + "post": { + "operationId": "promoteChart", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiUserAttributesResponse" + "$ref": "#/components/schemas/ApiPromoteChartResponse" } } } @@ -5275,22 +5633,34 @@ } } }, - "description": "Get all user attributes", + "description": "Promote chart to its upstream project", "tags": [ - "User attributes" + "Charts" ], "security": [], - "parameters": [] - }, - "post": { - "operationId": "createUserAttribute", + "parameters": [ + { + "description": "chartUuid for the chart to run", + "in": "path", + "name": "chartUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/saved/{chartUuid}/promoteDiff": { + "get": { + "operationId": "promoteChartDiff", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiCreateUserAttributeResponse" + "$ref": "#/components/schemas/ApiPromotionChangesResponse" } } } @@ -5306,36 +5676,58 @@ } } }, - "description": "Creates new user attribute", + "description": "Get diff from chart to promote", "tags": [ - "User attributes" + "Charts" ], "security": [], - "parameters": [], - "requestBody": { - "description": "the user attribute to create", - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateUserAttribute", - "description": "the user attribute to create" - } + "parameters": [ + { + "description": "chartUuid for the chart to check diff", + "in": "path", + "name": "chartUuid", + "required": true, + "schema": { + "type": "string" } } - } + ] } }, - "/api/v1/org/attributes/{userAttributeUuid}": { - "put": { - "operationId": "updateUserAttribute", + "/api/v1/saved/{chartUuid}/downloadCsv": { + "post": { + "operationId": "DownloadCsvFromSavedChart", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiCreateUserAttributeResponse" + "properties": { + "results": { + "properties": { + "jobId": { + "type": "string" + } + }, + "required": [ + "jobId" + ], + "type": "object" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" } } } @@ -5351,16 +5743,15 @@ } } }, - "description": "Updates a user attribute", + "description": "Download a CSV from a saved chart uuid", "tags": [ - "User attributes" + "Charts" ], "security": [], "parameters": [ { - "description": "the UUID for the group to add the user to", "in": "path", - "name": "userAttributeUuid", + "name": "chartUuid", "required": true, "schema": { "type": "string" @@ -5368,27 +5759,45 @@ } ], "requestBody": { - "description": "the user attribute to update", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateUserAttribute", - "description": "the user attribute to update" + "properties": { + "csvLimit": { + "type": "number", + "format": "double", + "nullable": true + }, + "onlyRaw": { + "type": "boolean" + }, + "tileUuid": { + "type": "string" + }, + "dashboardFilters": {} + }, + "required": [ + "onlyRaw", + "dashboardFilters" + ], + "type": "object" } } } } - }, - "delete": { - "operationId": "removeUserAttribute", + } + }, + "/api/v1/schedulers/{projectUuid}/logs": { + "get": { + "operationId": "getSchedulerLogs", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiSchedulerLogsResponse" } } } @@ -5404,16 +5813,15 @@ } } }, - "description": "Remove a user attribute", + "description": "Get scheduled logs", "tags": [ - "User attributes" + "Schedulers" ], "security": [], "parameters": [ { - "description": "the user attribute UUID to remove", "in": "path", - "name": "userAttributeUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" @@ -5422,16 +5830,16 @@ ] } }, - "/api/v1/user": { + "/api/v1/schedulers/{schedulerUuid}": { "get": { - "operationId": "GetAuthenticatedUser", + "operationId": "getScheduler", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGetAuthenticatedUserResponse" + "$ref": "#/components/schemas/ApiSchedulerAndTargetsResponse" } } } @@ -5447,22 +5855,32 @@ } } }, - "description": "Get authenticated user", + "description": "Get a scheduler", "tags": [ - "My Account" + "Schedulers" ], "security": [], - "parameters": [] + "parameters": [ + { + "description": "The uuid of the scheduler to update", + "in": "path", + "name": "schedulerUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] }, - "post": { - "operationId": "RegisterUser", + "patch": { + "operationId": "updateScheduler", "responses": { - "200": { - "description": "Ok", + "201": { + "description": "Updated", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiRegisterUserResponse" + "$ref": "#/components/schemas/ApiSchedulerAndTargetsResponse" } } } @@ -5478,34 +5896,56 @@ } } }, - "description": "Register user", + "description": "Update a scheduler", "tags": [ - "My Account" + "Schedulers" ], "security": [], - "parameters": [], + "parameters": [ + { + "description": "The uuid of the scheduler to update", + "in": "path", + "name": "schedulerUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], "requestBody": { + "description": "the new scheduler data", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/RegisterOrActivateUser" + "description": "the new scheduler data" } } } } - } - }, - "/api/v1/user/me/email/otp": { - "put": { - "operationId": "CreateEmailOneTimePasscode", + }, + "delete": { + "operationId": "deleteScheduler", "responses": { - "200": { - "description": "Ok", + "201": { + "description": "Deleted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiEmailStatusResponse" + "properties": { + "results": {}, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "status" + ], + "type": "object" } } } @@ -5521,24 +5961,34 @@ } } }, - "description": "Create a new one-time passcode for the current user's primary email.\nThe user will receive an email with the passcode.", + "description": "Delete a scheduler", "tags": [ - "My Account" + "Schedulers" ], "security": [], - "parameters": [] + "parameters": [ + { + "description": "The uuid of the scheduler to delete", + "in": "path", + "name": "schedulerUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] } }, - "/api/v1/user/me/email/status": { - "get": { - "operationId": "GetEmailVerificationStatus", + "/api/v1/schedulers/{schedulerUuid}/enabled": { + "patch": { + "operationId": "updateSchedulerEnabled", "responses": { - "200": { - "description": "Ok", + "201": { + "description": "Updated", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiEmailStatusResponse" + "$ref": "#/components/schemas/ApiSchedulerAndTargetsResponse" } } } @@ -5554,34 +6004,54 @@ } } }, - "description": "Get the verification status for the current user's primary email", + "description": "Set scheduler enabled", "tags": [ - "My Account" + "Schedulers" ], "security": [], "parameters": [ { - "description": "the one-time passcode sent to the user's primary email", - "in": "query", - "name": "passcode", - "required": false, + "description": "The uuid of the scheduler to update", + "in": "path", + "name": "schedulerUuid", + "required": true, "schema": { "type": "string" } } - ] - } - }, - "/api/v1/user/me/allowedOrganizations": { - "get": { - "operationId": "ListMyAvailableOrganizations", - "responses": { - "200": { - "description": "Ok", + ], + "requestBody": { + "description": "the enabled flag", + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" + ], + "type": "object", + "description": "the enabled flag" + } + } + } + } + } + }, + "/api/v1/schedulers/{schedulerUuid}/jobs": { + "get": { + "operationId": "getScheduledJobs", + "responses": { + "200": { + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiUserAllowedOrganizationsResponse" + "$ref": "#/components/schemas/ApiScheduledJobsResponse" } } } @@ -5597,24 +6067,34 @@ } } }, - "description": "List the organizations that the current user can join.\nThis is based on the user's primary email domain and the organization's allowed email domains.", + "description": "Get scheduled jobs", "tags": [ - "My Account" + "Schedulers" ], "security": [], - "parameters": [] + "parameters": [ + { + "description": "The uuid of the scheduler to update", + "in": "path", + "name": "schedulerUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] } }, - "/api/v1/user/me/joinOrganization/{organizationUuid}": { - "post": { - "operationId": "JoinOrganization", + "/api/v1/schedulers/job/{jobId}/status": { + "get": { + "operationId": "getSchedulerJobStatus", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiJobStatusResponse" } } } @@ -5630,16 +6110,16 @@ } } }, - "description": "Add the current user to an organization that accepts users with a verified email domain.\nThis will fail if the organization email domain does not match the user's primary email domain.", + "description": "Get a generic job status\nThis method can be used when polling from the frontend", "tags": [ - "My Account" + "Schedulers" ], "security": [], "parameters": [ { - "description": "the uuid of the organization to join", + "description": "the jobId for the status to check", "in": "path", - "name": "organizationUuid", + "name": "jobId", "required": true, "schema": { "type": "string" @@ -5648,16 +6128,16 @@ ] } }, - "/api/v1/user/me": { - "delete": { - "operationId": "DeleteMe", + "/api/v1/schedulers/send": { + "post": { + "operationId": "sendScheduler", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiTestSchedulerResponse" } } } @@ -5673,43 +6153,35 @@ } } }, - "description": "Delete user", + "description": "Send a scheduler now before saving it", "tags": [ - "My Account" + "Schedulers" ], "security": [], - "parameters": [] + "parameters": [], + "requestBody": { + "description": "the create scheduler data", + "required": true, + "content": { + "application/json": { + "schema": { + "description": "the create scheduler data" + } + } + } + } } }, - "/api/v1/user/warehouseCredentials": { + "/api/v1/share/{nanoId}": { "get": { - "operationId": "getWarehouseCredentials", + "operationId": "getShareUrl", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "properties": { - "results": { - "items": { - "$ref": "#/components/schemas/UserWarehouseCredentials" - }, - "type": "array" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" + "$ref": "#/components/schemas/ApiShareResponse" } } } @@ -5725,38 +6197,34 @@ } } }, - "description": "Get user warehouse credentials", + "description": "Get a share url from a short url id", "tags": [ - "My Account" + "Share links" ], "security": [], - "parameters": [] - }, + "parameters": [ + { + "description": "the short id for the share url", + "in": "path", + "name": "nanoId", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/share": { "post": { - "operationId": "createWarehouseCredentials", + "operationId": "CreateShareUrl", "responses": { - "200": { - "description": "Ok", + "201": { + "description": "Created", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/UserWarehouseCredentials" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" + "$ref": "#/components/schemas/ApiShareResponse" } } } @@ -5772,50 +6240,36 @@ } } }, - "description": "Create user warehouse credentials", + "description": "Given a full URL generates a short url id that can be used for sharing", "tags": [ - "My Account" + "Share links" ], "security": [], "parameters": [], "requestBody": { + "description": "a full URL used to generate a short url id", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpsertUserWarehouseCredentials" + "$ref": "#/components/schemas/Pick_ShareUrl.path-or-params_", + "description": "a full URL used to generate a short url id" } } } } } }, - "/api/v1/user/warehouseCredentials/{uuid}": { - "patch": { - "operationId": "updateWarehouseCredentials", + "/api/v1/slack/channels": { + "get": { + "operationId": "getSlackChannels", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/UserWarehouseCredentials" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" + "$ref": "#/components/schemas/ApiSlackChannelsResponse" } } } @@ -5831,41 +6285,76 @@ } } }, - "description": "Update user warehouse credentials", + "description": "Get slack channels", "tags": [ - "My Account" + "Integrations" ], "security": [], "parameters": [ { - "in": "path", - "name": "uuid", - "required": true, + "in": "query", + "name": "search", + "required": false, "schema": { "type": "string" } } + ] + } + }, + "/api/v1/slack/custom-settings": { + "put": { + "operationId": "UpdateCustomSettings", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSlackCustomSettingsResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Update slack notification channel to send notifications to scheduled jobs fail", + "tags": [ + "Integrations" ], + "security": [], + "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpsertUserWarehouseCredentials" + "$ref": "#/components/schemas/SlackAppCustomSettings" } } } } - }, - "delete": { - "operationId": "deleteWarehouseCredentials", + } + }, + "/api/v1/projects/{projectUuid}/spaces/{spaceUuid}": { + "get": { + "operationId": "GetSpace", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiSpaceResponse" } } } @@ -5881,33 +6370,41 @@ } } }, - "description": "Delete user warehouse credentials", + "description": "Get details for a space in a project", "tags": [ - "My Account" + "Spaces" ], "security": [], "parameters": [ { + "description": "The uuid of the space's parent project", "in": "path", - "name": "uuid", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The uuid of the space to get", + "in": "path", + "name": "spaceUuid", "required": true, "schema": { "type": "string" } } ] - } - }, - "/api/v1/user/login-options": { - "get": { - "operationId": "getLoginOptions", + }, + "delete": { + "operationId": "DeleteSpace", "responses": { - "200": { - "description": "Ok", + "204": { + "description": "Deleted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGetLoginOptionsResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -5923,33 +6420,104 @@ } } }, - "description": "Get login options", + "description": "Delete a space from a project", "tags": [ - "My Account" + "Spaces" ], "security": [], "parameters": [ { - "in": "query", - "name": "email", - "required": false, + "description": "The uuid of the space's parent project", + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The uuid of the space to delete", + "in": "path", + "name": "spaceUuid", + "required": true, "schema": { "type": "string" } } ] + }, + "patch": { + "operationId": "UpdateSpace", + "responses": { + "200": { + "description": "Updated", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSpaceResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Update a space in a project", + "tags": [ + "Roles & Permissions", + "Spaces" + ], + "security": [], + "parameters": [ + { + "description": "The uuid of the space's parent project", + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The uuid of the space to update", + "in": "path", + "name": "spaceUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSpace" + } + } + } + } } }, - "/api/v1/projects/{projectUuid}/validate": { + "/api/v1/projects/{projectUuid}/spaces/{spaceUuid}/share": { "post": { - "operationId": "ValidateProject", + "operationId": "AddSpaceUserAccess", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiJobScheduledResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -5965,56 +6533,53 @@ } } }, - "description": "Validate content inside a project. This will start a validation job and return the job id.\n\nValidation jobs scan all charts and dashboards inside a project to find any broken references\nto metrics or dimensions that aren't available. Results are available after the job is completed.", + "description": "Grant a user access to a space", "tags": [ - "Projects" + "Roles & Permissions", + "Spaces" ], "security": [], "parameters": [ { - "description": "the projectId for the validation", + "description": "The uuid of the space's parent project", "in": "path", "name": "projectUuid", "required": true, "schema": { "type": "string" } + }, + { + "in": "path", + "name": "spaceUuid", + "required": true, + "schema": { + "type": "string" + } } ], "requestBody": { - "description": "the compiled explores to validate against an existing project, this is used in the CLI to validate a project without creating a preview", "required": true, "content": { "application/json": { "schema": { - "properties": { - "validationTargets": { - "items": { - "$ref": "#/components/schemas/ValidationTarget" - }, - "type": "array" - }, - "explores": { - "items": {}, - "type": "array" - } - }, - "type": "object", - "description": "the compiled explores to validate against an existing project, this is used in the CLI to validate a project without creating a preview" + "$ref": "#/components/schemas/AddSpaceUserAccess" } } } } - }, - "get": { - "operationId": "GetLatestValidationResults", + } + }, + "/api/v1/projects/{projectUuid}/spaces/{spaceUuid}/share/{userUuid}": { + "delete": { + "operationId": "RevokeSpaceAccessForUser", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiValidateResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -6030,14 +6595,15 @@ } } }, - "description": "Get validation results for a project. This will return the results of the latest validation job.", + "description": "Remove a user's access to a space", "tags": [ - "Projects" + "Roles & Permissions", + "Spaces" ], "security": [], "parameters": [ { - "description": "the projectId for the validation", + "description": "The uuid of the space's parent project", "in": "path", "name": "projectUuid", "required": true, @@ -6046,19 +6612,19 @@ } }, { - "description": "boolean to know if this request is made from the settings page, for analytics", - "in": "query", - "name": "fromSettings", - "required": false, + "description": "The uuid of the space to update", + "in": "path", + "name": "spaceUuid", + "required": true, "schema": { - "type": "boolean" + "type": "string" } }, { - "description": "optional jobId to get results for a specific job, used on CLI", - "in": "query", - "name": "jobId", - "required": false, + "description": "The uuid of the user to revoke access from", + "in": "path", + "name": "userUuid", + "required": true, "schema": { "type": "string" } @@ -6066,16 +6632,16 @@ ] } }, - "/api/v1/projects/{projectUuid}/validate/{validationId}": { - "delete": { - "operationId": "DeleteValidationDismiss", + "/api/v1/projects/{projectUuid}/spaces/{spaceUuid}/group/share": { + "post": { + "operationId": "AddSpaceGroupAccess", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiValidationDismissResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -6091,13 +6657,15 @@ } } }, - "description": "Deletes a single validation error.", + "description": "Grant a group access to a space", "tags": [ - "Projects" + "Roles & Permissions", + "Spaces" ], "security": [], "parameters": [ { + "description": "The uuid of the space's parent project", "in": "path", "name": "projectUuid", "required": true, @@ -6106,408 +6674,3133 @@ } }, { - "description": "the projectId for the validation", + "description": "The uuid of the space to update", "in": "path", - "name": "validationId", + "name": "spaceUuid", "required": true, "schema": { - "format": "double", - "type": "number" + "type": "string" } } - ] - } - } - }, - "components": { - "securitySchemes": { - "session_cookie": { - "type": "apiKey", - "in": "cookie", - "name": "connect.sid" - }, - "api_key": { - "type": "apiKey", - "in": "header", - "name": "Authorization", - "description": "Value should be 'ApiKey '" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AddSpaceGroupAccess" + } + } + } + } } }, - "schemas": { - "CatalogType": { - "enum": [ - "table", - "field" - ], - "type": "string" - }, - "CatalogFilter": { - "enum": [ - "tables", - "dimensions", - "metrics" - ], - "type": "string" - }, - "ApiErrorPayload": { - "properties": { - "error": { - "properties": { - "data": { - "description": "Optional data containing details of the error" - }, - "message": { - "type": "string", - "description": "A friendly message summarising the error" - }, - "name": { + "/api/v1/projects/{projectUuid}/spaces/{spaceUuid}/group/share/{groupUuid}": { + "delete": { + "operationId": "RevokeGroupSpaceAccess", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Remove a group's access to a space", + "tags": [ + "Roles & Permissions", + "Spaces" + ], + "security": [], + "parameters": [ + { + "description": "The uuid of the space's parent project", + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The uuid of the space to update", + "in": "path", + "name": "spaceUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The uuid of the group to revoke access from", + "in": "path", + "name": "groupUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/ssh/key-pairs": { + "post": { + "operationId": "createSshKeyPair", + "responses": { + "201": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSshKeyPairResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "tags": [ + "SSH Keypairs" + ], + "security": [], + "parameters": [] + } + }, + "/api/v1/org/attributes": { + "get": { + "operationId": "getUserAttributes", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiUserAttributesResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get all user attributes", + "tags": [ + "User attributes" + ], + "security": [], + "parameters": [] + }, + "post": { + "operationId": "createUserAttribute", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiCreateUserAttributeResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Creates new user attribute", + "tags": [ + "User attributes" + ], + "security": [], + "parameters": [], + "requestBody": { + "description": "the user attribute to create", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateUserAttribute", + "description": "the user attribute to create" + } + } + } + } + } + }, + "/api/v1/org/attributes/{userAttributeUuid}": { + "put": { + "operationId": "updateUserAttribute", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiCreateUserAttributeResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Updates a user attribute", + "tags": [ + "User attributes" + ], + "security": [], + "parameters": [ + { + "description": "the UUID for the group to add the user to", + "in": "path", + "name": "userAttributeUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "the user attribute to update", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateUserAttribute", + "description": "the user attribute to update" + } + } + } + } + }, + "delete": { + "operationId": "removeUserAttribute", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Remove a user attribute", + "tags": [ + "User attributes" + ], + "security": [], + "parameters": [ + { + "description": "the user attribute UUID to remove", + "in": "path", + "name": "userAttributeUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/user": { + "get": { + "operationId": "GetAuthenticatedUser", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiGetAuthenticatedUserResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get authenticated user", + "tags": [ + "My Account" + ], + "security": [], + "parameters": [] + }, + "post": { + "operationId": "RegisterUser", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiRegisterUserResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Register user", + "tags": [ + "My Account" + ], + "security": [], + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegisterOrActivateUser" + } + } + } + } + } + }, + "/api/v1/user/me/email/otp": { + "put": { + "operationId": "CreateEmailOneTimePasscode", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiEmailStatusResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Create a new one-time passcode for the current user's primary email.\nThe user will receive an email with the passcode.", + "tags": [ + "My Account" + ], + "security": [], + "parameters": [] + } + }, + "/api/v1/user/me/email/status": { + "get": { + "operationId": "GetEmailVerificationStatus", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiEmailStatusResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get the verification status for the current user's primary email", + "tags": [ + "My Account" + ], + "security": [], + "parameters": [ + { + "description": "the one-time passcode sent to the user's primary email", + "in": "query", + "name": "passcode", + "required": false, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/user/me/allowedOrganizations": { + "get": { + "operationId": "ListMyAvailableOrganizations", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiUserAllowedOrganizationsResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "List the organizations that the current user can join.\nThis is based on the user's primary email domain and the organization's allowed email domains.", + "tags": [ + "My Account" + ], + "security": [], + "parameters": [] + } + }, + "/api/v1/user/me/joinOrganization/{organizationUuid}": { + "post": { + "operationId": "JoinOrganization", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Add the current user to an organization that accepts users with a verified email domain.\nThis will fail if the organization email domain does not match the user's primary email domain.", + "tags": [ + "My Account" + ], + "security": [], + "parameters": [ + { + "description": "the uuid of the organization to join", + "in": "path", + "name": "organizationUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/user/me": { + "delete": { + "operationId": "DeleteMe", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Delete user", + "tags": [ + "My Account" + ], + "security": [], + "parameters": [] + } + }, + "/api/v1/user/warehouseCredentials": { + "get": { + "operationId": "getWarehouseCredentials", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/UserWarehouseCredentials" + }, + "type": "array" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get user warehouse credentials", + "tags": [ + "My Account" + ], + "security": [], + "parameters": [] + }, + "post": { + "operationId": "createWarehouseCredentials", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "$ref": "#/components/schemas/UserWarehouseCredentials" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Create user warehouse credentials", + "tags": [ + "My Account" + ], + "security": [], + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertUserWarehouseCredentials" + } + } + } + } + } + }, + "/api/v1/user/warehouseCredentials/{uuid}": { + "patch": { + "operationId": "updateWarehouseCredentials", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "$ref": "#/components/schemas/UserWarehouseCredentials" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Update user warehouse credentials", + "tags": [ + "My Account" + ], + "security": [], + "parameters": [ + { + "in": "path", + "name": "uuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpsertUserWarehouseCredentials" + } + } + } + } + }, + "delete": { + "operationId": "deleteWarehouseCredentials", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Delete user warehouse credentials", + "tags": [ + "My Account" + ], + "security": [], + "parameters": [ + { + "in": "path", + "name": "uuid", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/user/login-options": { + "get": { + "operationId": "getLoginOptions", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiGetLoginOptionsResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get login options", + "tags": [ + "My Account" + ], + "security": [], + "parameters": [ + { + "in": "query", + "name": "email", + "required": false, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/user/me/personal-access-tokens/{personalAccessTokenUuid}/rotate": { + "patch": { + "operationId": "Rotate personal access token", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "$ref": "#/components/schemas/PersonalAccessTokenWithToken" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Rotate personal access token", + "tags": [ + "My Account" + ], + "security": [], + "parameters": [ + { + "in": "path", + "name": "personalAccessTokenUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "expiresAt": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "expiresAt" + ], + "type": "object" + } + } + } + } + } + }, + "/api/v1/projects/{projectUuid}/validate": { + "post": { + "operationId": "ValidateProject", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiJobScheduledResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Validate content inside a project. This will start a validation job and return the job id.\n\nValidation jobs scan all charts and dashboards inside a project to find any broken references\nto metrics or dimensions that aren't available. Results are available after the job is completed.", + "tags": [ + "Projects" + ], + "security": [], + "parameters": [ + { + "description": "the projectId for the validation", + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "the compiled explores to validate against an existing project, this is used in the CLI to validate a project without creating a preview", + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "validationTargets": { + "items": { + "$ref": "#/components/schemas/ValidationTarget" + }, + "type": "array" + }, + "explores": { + "items": {}, + "type": "array" + } + }, + "type": "object", + "description": "the compiled explores to validate against an existing project, this is used in the CLI to validate a project without creating a preview" + } + } + } + } + }, + "get": { + "operationId": "GetLatestValidationResults", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiValidateResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get validation results for a project. This will return the results of the latest validation job.", + "tags": [ + "Projects" + ], + "security": [], + "parameters": [ + { + "description": "the projectId for the validation", + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "boolean to know if this request is made from the settings page, for analytics", + "in": "query", + "name": "fromSettings", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "optional jobId to get results for a specific job, used on CLI", + "in": "query", + "name": "jobId", + "required": false, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/projects/{projectUuid}/validate/{validationId}": { + "delete": { + "operationId": "DeleteValidationDismiss", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiValidationDismissResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Deletes a single validation error.", + "tags": [ + "Projects" + ], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the projectId for the validation", + "in": "path", + "name": "validationId", + "required": true, + "schema": { + "format": "double", + "type": "number" + } + } + ] + } + } + }, + "components": { + "securitySchemes": { + "session_cookie": { + "type": "apiKey", + "in": "cookie", + "name": "connect.sid" + }, + "api_key": { + "type": "apiKey", + "in": "header", + "name": "Authorization", + "description": "Value should be 'ApiKey '" + } + }, + "schemas": { + "CatalogType": { + "enum": [ + "table", + "field" + ], + "type": "string" + }, + "CatalogFilter": { + "enum": [ + "tables", + "dimensions", + "metrics" + ], + "type": "string" + }, + "ApiErrorPayload": { + "properties": { + "error": { + "properties": { + "data": { + "description": "Optional data containing details of the error" + }, + "message": { + "type": "string", + "description": "A friendly message summarising the error" + }, + "name": { "type": "string", "description": "Unique name for the type of error" }, - "statusCode": { - "type": "number", - "format": "integer", - "description": "HTTP status code" + "statusCode": { + "type": "number", + "format": "integer", + "description": "HTTP status code" + } + }, + "required": [ + "name", + "statusCode" + ], + "type": "object" + }, + "status": { + "type": "string", + "enum": [ + "error" + ], + "nullable": false + } + }, + "required": [ + "error", + "status" + ], + "type": "object", + "description": "The Error object is returned from the api any time there is an error.\nThe message contains" + }, + "FieldType": { + "enum": [ + "metric", + "dimension" + ], + "type": "string" + }, + "Pick_Field.name-or-label-or-fieldType-or-tableLabel-or-description_": { + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "fieldType": { + "$ref": "#/components/schemas/FieldType" + }, + "tableLabel": { + "type": "string" + }, + "description": { + "type": "string" + } + }, + "required": [ + "name", + "label", + "fieldType", + "tableLabel" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Record_string.string-or-string-Array_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "Pick_Dimension.requiredAttributes_": { + "properties": { + "requiredAttributes": { + "$ref": "#/components/schemas/Record_string.string-or-string-Array_" + } + }, + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "EmojiIcon": { + "properties": { + "unicode": { + "type": "string" + } + }, + "required": [ + "unicode" + ], + "type": "object" + }, + "CustomIcon": { + "properties": { + "url": { + "type": "string" + } + }, + "required": [ + "url" + ], + "type": "object" + }, + "CatalogItemIcon": { + "anyOf": [ + { + "$ref": "#/components/schemas/EmojiIcon" + }, + { + "$ref": "#/components/schemas/CustomIcon" + } + ] + }, + "Pick_Tag.name-or-color-or-tagUuid_": { + "properties": { + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "tagUuid": { + "type": "string" + } + }, + "required": [ + "name", + "color", + "tagUuid" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "CatalogType.Field": { + "enum": [ + "field" + ], + "type": "string" + }, + "CatalogField": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_Field.name-or-label-or-fieldType-or-tableLabel-or-description_" + }, + { + "$ref": "#/components/schemas/Pick_Dimension.requiredAttributes_" + }, + { + "properties": { + "icon": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemIcon" + } + ], + "nullable": true + }, + "chartUsage": { + "type": "number", + "format": "double" + }, + "categories": { + "items": { + "$ref": "#/components/schemas/Pick_Tag.name-or-color-or-tagUuid_" + }, + "type": "array" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tableGroupLabel": { + "type": "string" + }, + "tableName": { + "type": "string" + }, + "basicType": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/CatalogType.Field" + }, + "catalogSearchUuid": { + "type": "string" + } + }, + "required": [ + "icon", + "categories", + "tableName", + "type", + "catalogSearchUuid" + ], + "type": "object" + } + ] + }, + "Pick_TableBase.name-or-label-or-groupLabel-or-description-or-requiredAttributes_": { + "properties": { + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "description": { + "type": "string" + }, + "requiredAttributes": { + "$ref": "#/components/schemas/Record_string.string-or-string-Array_" + }, + "groupLabel": { + "type": "string" + } + }, + "required": [ + "name", + "label" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "DbtModelJoinType": { + "type": "string", + "enum": [ + "inner", + "full", + "left", + "right" + ] + }, + "Pick_ExploreJoin.table-or-sqlOn-or-type-or-hidden-or-always_": { + "properties": { + "table": { + "type": "string" + }, + "sqlOn": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/DbtModelJoinType" + }, + "hidden": { + "type": "boolean" + }, + "always": { + "type": "boolean" + } + }, + "required": [ + "table", + "sqlOn" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "CompiledExploreJoin": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_ExploreJoin.table-or-sqlOn-or-type-or-hidden-or-always_" + }, + { + "properties": { + "compiledSqlOn": { + "type": "string" + } + }, + "required": [ + "compiledSqlOn" + ], + "type": "object" + } + ] + }, + "CatalogType.Table": { + "enum": [ + "table" + ], + "type": "string" + }, + "InlineErrorType": { + "enum": [ + "METADATA_PARSE_ERROR", + "NO_DIMENSIONS_FOUND" + ], + "type": "string" + }, + "InlineError": { + "properties": { + "message": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/InlineErrorType" + } + }, + "required": [ + "message", + "type" + ], + "type": "object" + }, + "CatalogTable": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_TableBase.name-or-label-or-groupLabel-or-description-or-requiredAttributes_" + }, + { + "properties": { + "icon": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemIcon" + } + ], + "nullable": true + }, + "chartUsage": { + "type": "number", + "format": "double" + }, + "joinedTables": { + "items": { + "$ref": "#/components/schemas/CompiledExploreJoin" + }, + "type": "array" + }, + "categories": { + "items": { + "$ref": "#/components/schemas/Pick_Tag.name-or-color-or-tagUuid_" + }, + "type": "array" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "groupLabel": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/CatalogType.Table" + }, + "errors": { + "items": { + "$ref": "#/components/schemas/InlineError" + }, + "type": "array" + }, + "catalogSearchUuid": { + "type": "string" + } + }, + "required": [ + "icon", + "categories", + "type", + "catalogSearchUuid" + ], + "type": "object" + } + ] + }, + "CatalogItem": { + "anyOf": [ + { + "$ref": "#/components/schemas/CatalogField" + }, + { + "$ref": "#/components/schemas/CatalogTable" + } + ] + }, + "ApiCatalogResults": { + "items": { + "$ref": "#/components/schemas/CatalogItem" + }, + "type": "array" + }, + "CatalogMetadata": { + "properties": { + "fieldType": { + "$ref": "#/components/schemas/FieldType" + }, + "tableLabel": { + "type": "string" + }, + "joinedTables": { + "items": { + "type": "string" + }, + "type": "array" + }, + "fields": { + "items": { + "$ref": "#/components/schemas/CatalogField" + }, + "type": "array" + }, + "source": { + "type": "string" + }, + "modelName": { + "type": "string" + }, + "label": { + "type": "string" + }, + "description": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "joinedTables", + "fields", + "modelName", + "label", + "name" + ], + "type": "object" + }, + "ChartKind": { + "enum": [ + "line", + "horizontal_bar", + "vertical_bar", + "scatter", + "area", + "mixed", + "pie", + "table", + "big_number", + "funnel", + "custom" + ], + "type": "string" + }, + "Pick_ChartSummary.uuid-or-name-or-spaceUuid-or-spaceName-or-dashboardName-or-dashboardUuid-or-chartKind_": { + "properties": { + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "spaceName": { + "type": "string" + }, + "spaceUuid": { + "type": "string" + }, + "dashboardUuid": { + "type": "string", + "nullable": true + }, + "dashboardName": { + "type": "string", + "nullable": true + }, + "chartKind": { + "$ref": "#/components/schemas/ChartKind" + } + }, + "required": [ + "name", + "uuid", + "spaceName", + "spaceUuid", + "dashboardUuid", + "dashboardName" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "CatalogAnalytics": { + "properties": { + "charts": { + "items": { + "$ref": "#/components/schemas/Pick_ChartSummary.uuid-or-name-or-spaceUuid-or-spaceName-or-dashboardName-or-dashboardUuid-or-chartKind_" + }, + "type": "array" + } + }, + "required": [ + "charts" + ], + "type": "object" + }, + "ApiSortDirection": { + "type": "string", + "enum": [ + "asc", + "desc" + ] + }, + "KnexPaginateArgs": { + "properties": { + "page": { + "type": "number", + "format": "double" + }, + "pageSize": { + "type": "number", + "format": "double" + } + }, + "required": [ + "page", + "pageSize" + ], + "type": "object" + }, + "ApiMetricsCatalogResults": { + "items": { + "$ref": "#/components/schemas/CatalogField" + }, + "type": "array" + }, + "KnexPaginatedData_ApiMetricsCatalogResults_": { + "properties": { + "pagination": { + "allOf": [ + { + "$ref": "#/components/schemas/KnexPaginateArgs" + }, + { + "properties": { + "totalResults": { + "type": "number", + "format": "double" + }, + "totalPageCount": { + "type": "number", + "format": "double" + } + }, + "required": [ + "totalResults", + "totalPageCount" + ], + "type": "object" + } + ] + }, + "data": { + "$ref": "#/components/schemas/ApiMetricsCatalogResults" + } + }, + "required": [ + "data" + ], + "type": "object" + }, + "ApiMetricsCatalog": { + "properties": { + "results": { + "$ref": "#/components/schemas/KnexPaginatedData_ApiMetricsCatalogResults_" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + }, + "FieldType.METRIC": { + "enum": [ + "metric" + ], + "type": "string" + }, + "MetricType": { + "enum": [ + "percentile", + "average", + "count", + "count_distinct", + "sum", + "min", + "max", + "number", + "median", + "string", + "date", + "timestamp", + "boolean" + ], + "type": "string" + }, + "SourcePosition": { + "properties": { + "character": { + "type": "number", + "format": "double" + }, + "line": { + "type": "number", + "format": "double" + } + }, + "required": [ + "character", + "line" + ], + "type": "object" + }, + "Source": { + "properties": { + "content": { + "type": "string" + }, + "highlight": { + "properties": { + "end": { + "$ref": "#/components/schemas/SourcePosition" + }, + "start": { + "$ref": "#/components/schemas/SourcePosition" + } + }, + "required": [ + "end", + "start" + ], + "type": "object" + }, + "range": { + "properties": { + "end": { + "$ref": "#/components/schemas/SourcePosition" + }, + "start": { + "$ref": "#/components/schemas/SourcePosition" + } + }, + "required": [ + "end", + "start" + ], + "type": "object" + }, + "path": { + "type": "string" + } + }, + "required": [ + "content", + "range", + "path" + ], + "type": "object" + }, + "Compact": { + "enum": [ + "thousands", + "millions", + "billions", + "trillions" + ], + "type": "string" + }, + "CompactOrAlias": { + "anyOf": [ + { + "$ref": "#/components/schemas/Compact" + }, + { + "type": "string", + "enum": [ + "K", + "thousand", + "M", + "million", + "B", + "billion", + "T", + "trillion" + ] + } + ] + }, + "Format": { + "enum": [ + "km", + "mi", + "usd", + "gbp", + "eur", + "id", + "percent" + ], + "type": "string" + }, + "FieldUrl": { + "properties": { + "label": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": [ + "label", + "url" + ], + "type": "object" + }, + "ConditionalOperator": { + "enum": [ + "isNull", + "notNull", + "equals", + "notEquals", + "startsWith", + "endsWith", + "include", + "doesNotInclude", + "lessThan", + "lessThanOrEqual", + "greaterThan", + "greaterThanOrEqual", + "inThePast", + "notInThePast", + "inTheNext", + "inTheCurrent", + "notInTheCurrent", + "inBetween" + ], + "type": "string" + }, + "MetricFilterRule": { + "properties": { + "values": { + "items": {}, + "type": "array" + }, + "operator": { + "$ref": "#/components/schemas/ConditionalOperator" + }, + "id": { + "type": "string" + }, + "target": { + "properties": { + "fieldRef": { + "type": "string" + } + }, + "required": [ + "fieldRef" + ], + "type": "object" + }, + "settings": {}, + "disabled": { + "type": "boolean" + }, + "required": { + "type": "boolean" + } + }, + "required": [ + "operator", + "id", + "target" + ], + "type": "object", + "additionalProperties": true + }, + "CustomFormatType": { + "enum": [ + "default", + "percent", + "currency", + "number", + "id", + "date", + "timestamp" + ], + "type": "string" + }, + "NumberSeparator": { + "enum": [ + "default", + "commaPeriod", + "spacePeriod", + "periodComma", + "noSeparatorPeriod" + ], + "type": "string" + }, + "TimeFrames": { + "enum": [ + "RAW", + "YEAR", + "QUARTER", + "MONTH", + "WEEK", + "DAY", + "HOUR", + "MINUTE", + "SECOND", + "MILLISECOND", + "DAY_OF_WEEK_INDEX", + "DAY_OF_MONTH_NUM", + "DAY_OF_YEAR_NUM", + "WEEK_NUM", + "MONTH_NUM", + "QUARTER_NUM", + "YEAR_NUM", + "DAY_OF_WEEK_NAME", + "MONTH_NAME", + "QUARTER_NAME", + "HOUR_OF_DAY_NUM", + "MINUTE_OF_HOUR_NUM" + ], + "type": "string" + }, + "CustomFormat": { + "properties": { + "type": { + "$ref": "#/components/schemas/CustomFormatType" + }, + "round": { + "type": "number", + "format": "double" + }, + "separator": { + "$ref": "#/components/schemas/NumberSeparator" + }, + "currency": { + "type": "string" + }, + "compact": { + "$ref": "#/components/schemas/CompactOrAlias" + }, + "prefix": { + "type": "string" + }, + "suffix": { + "type": "string" + }, + "timeInterval": { + "$ref": "#/components/schemas/TimeFrames" + } + }, + "required": [ + "type" + ], + "type": "object", + "additionalProperties": true + }, + "DefaultTimeDimension": { + "properties": { + "interval": { + "$ref": "#/components/schemas/TimeFrames" + }, + "field": { + "type": "string" + } + }, + "required": [ + "interval", + "field" + ], + "type": "object" + }, + "Record_string.Record_string.string-or-string-Array__": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "CompiledMetric": { + "properties": { + "fieldType": { + "$ref": "#/components/schemas/FieldType.METRIC" + }, + "type": { + "$ref": "#/components/schemas/MetricType" + }, + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "table": { + "type": "string" + }, + "tableLabel": { + "type": "string" + }, + "sql": { + "type": "string" + }, + "description": { + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/Source" + }, + "hidden": { + "type": "boolean" + }, + "compact": { + "$ref": "#/components/schemas/CompactOrAlias" + }, + "round": { + "type": "number", + "format": "double" + }, + "format": { + "$ref": "#/components/schemas/Format" + }, + "groupLabel": { + "type": "string", + "deprecated": true + }, + "groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "urls": { + "items": { + "$ref": "#/components/schemas/FieldUrl" + }, + "type": "array" + }, + "index": { + "type": "number", + "format": "double" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "isAutoGenerated": { + "type": "boolean" + }, + "showUnderlyingValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "filters": { + "items": { + "$ref": "#/components/schemas/MetricFilterRule" + }, + "type": "array" + }, + "percentile": { + "type": "number", + "format": "double" + }, + "formatOptions": { + "$ref": "#/components/schemas/CustomFormat" + }, + "dimensionReference": { + "type": "string" + }, + "requiredAttributes": { + "$ref": "#/components/schemas/Record_string.string-or-string-Array_" + }, + "defaultTimeDimension": { + "$ref": "#/components/schemas/DefaultTimeDimension" + }, + "compiledSql": { + "type": "string" + }, + "tablesReferences": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tablesRequiredAttributes": { + "$ref": "#/components/schemas/Record_string.Record_string.string-or-string-Array__" + } + }, + "required": [ + "fieldType", + "type", + "name", + "label", + "table", + "tableLabel", + "sql", + "hidden", + "isAutoGenerated", + "compiledSql" + ], + "type": "object", + "additionalProperties": true + }, + "FieldType.DIMENSION": { + "enum": [ + "dimension" + ], + "type": "string" + }, + "DimensionType": { + "enum": [ + "string", + "number", + "timestamp", + "date", + "boolean" + ], + "type": "string" + }, + "Record_string.string_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "CompiledDimension": { + "properties": { + "fieldType": { + "$ref": "#/components/schemas/FieldType.DIMENSION" + }, + "type": { + "$ref": "#/components/schemas/DimensionType" + }, + "name": { + "type": "string" + }, + "label": { + "type": "string" + }, + "table": { + "type": "string" + }, + "tableLabel": { + "type": "string" + }, + "sql": { + "type": "string" + }, + "description": { + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/Source" + }, + "hidden": { + "type": "boolean" + }, + "compact": { + "$ref": "#/components/schemas/CompactOrAlias" + }, + "round": { + "type": "number", + "format": "double" + }, + "format": { + "$ref": "#/components/schemas/Format" + }, + "groupLabel": { + "type": "string", + "deprecated": true + }, + "groups": { + "items": { + "type": "string" + }, + "type": "array" + }, + "urls": { + "items": { + "$ref": "#/components/schemas/FieldUrl" + }, + "type": "array" + }, + "index": { + "type": "number", + "format": "double" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "group": { + "type": "string", + "deprecated": true + }, + "requiredAttributes": { + "$ref": "#/components/schemas/Record_string.string-or-string-Array_" + }, + "timeInterval": { + "$ref": "#/components/schemas/TimeFrames" + }, + "timeIntervalBaseDimensionName": { + "type": "string" + }, + "isAdditionalDimension": { + "type": "boolean" + }, + "colors": { + "$ref": "#/components/schemas/Record_string.string_" + }, + "isIntervalBase": { + "type": "boolean" + }, + "compiledSql": { + "type": "string" + }, + "tablesReferences": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tablesRequiredAttributes": { + "$ref": "#/components/schemas/Record_string.Record_string.string-or-string-Array__" + } + }, + "required": [ + "fieldType", + "type", + "name", + "label", + "table", + "tableLabel", + "sql", + "hidden", + "compiledSql" + ], + "type": "object", + "additionalProperties": true + }, + "DimensionType.DATE": { + "enum": [ + "date" + ], + "type": "string" + }, + "DimensionType.TIMESTAMP": { + "enum": [ + "timestamp" + ], + "type": "string" + }, + "MetricWithAssociatedTimeDimension": { + "allOf": [ + { + "$ref": "#/components/schemas/CompiledMetric" + }, + { + "properties": { + "availableTimeDimensions": { + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CompiledDimension" + }, + { + "properties": { + "type": { + "anyOf": [ + { + "$ref": "#/components/schemas/DimensionType.DATE" + }, + { + "$ref": "#/components/schemas/DimensionType.TIMESTAMP" + } + ] + } + }, + "required": [ + "type" + ], + "type": "object" + } + ] + }, + "type": "array" + }, + "timeDimension": { + "allOf": [ + { + "$ref": "#/components/schemas/DefaultTimeDimension" + }, + { + "properties": { + "table": { + "type": "string" + } + }, + "required": [ + "table" + ], + "type": "object" + } + ] + } + }, + "type": "object" + } + ] + }, + "ApiGetMetricPeek": { + "properties": { + "results": { + "$ref": "#/components/schemas/MetricWithAssociatedTimeDimension" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + }, + "ApiMetricsWithAssociatedTimeDimensionResponse": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/MetricWithAssociatedTimeDimension" + }, + "type": "array" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + }, + "ApiSuccessEmpty": { + "properties": { + "results": {}, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "Pick_CatalogField.catalogSearchUuid-or-name-or-tableName_": { + "properties": { + "name": { + "type": "string" + }, + "catalogSearchUuid": { + "type": "string" + }, + "tableName": { + "type": "string" + } + }, + "required": [ + "name", + "catalogSearchUuid", + "tableName" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "CatalogMetricsTreeEdge": { + "properties": { + "projectUuid": { + "type": "string" + }, + "createdByUserUuid": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "target": { + "$ref": "#/components/schemas/Pick_CatalogField.catalogSearchUuid-or-name-or-tableName_" + }, + "source": { + "$ref": "#/components/schemas/Pick_CatalogField.catalogSearchUuid-or-name-or-tableName_" + } + }, + "required": [ + "projectUuid", + "createdByUserUuid", + "createdAt", + "target", + "source" + ], + "type": "object" + }, + "ApiGetMetricsTree": { + "properties": { + "results": { + "properties": { + "edges": { + "items": { + "$ref": "#/components/schemas/CatalogMetricsTreeEdge" + }, + "type": "array" + } + }, + "required": [ + "edges" + ], + "type": "object" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + }, + "ApiMetricsTreeEdgePayload": { + "properties": { + "targetCatalogSearchUuid": { + "type": "string" + }, + "sourceCatalogSearchUuid": { + "type": "string" + } + }, + "required": [ + "targetCatalogSearchUuid", + "sourceCatalogSearchUuid" + ], + "type": "object" + }, + "Pick_Comment.text-or-replyTo-or-mentions-or-textHtml_": { + "properties": { + "text": { + "type": "string" + }, + "replyTo": { + "type": "string" + }, + "mentions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "textHtml": { + "type": "string" + } + }, + "required": [ + "text", + "mentions", + "textHtml" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "ApiCreateComment": { + "properties": { + "results": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + }, + "Comment": { + "properties": { + "mentions": { + "items": { + "type": "string" + }, + "type": "array" + }, + "canRemove": { + "type": "boolean" + }, + "resolved": { + "type": "boolean" + }, + "replies": { + "items": { + "$ref": "#/components/schemas/Comment" + }, + "type": "array" + }, + "replyTo": { + "type": "string" + }, + "user": { + "properties": { + "name": { + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "textHtml": { + "type": "string" + }, + "text": { + "type": "string" + }, + "commentId": { + "type": "string" + } + }, + "required": [ + "mentions", + "canRemove", + "resolved", + "user", + "createdAt", + "textHtml", + "text", + "commentId" + ], + "type": "object" + }, + "ApiGetComments": { + "properties": { + "results": { + "properties": {}, + "additionalProperties": { + "items": { + "$ref": "#/components/schemas/Comment" + }, + "type": "array" + }, + "type": "object" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + }, + "ApiResolveComment": { + "properties": { + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "status" + ], + "type": "object" + }, + "ApiCsvUrlResponse": { + "properties": { + "results": { + "properties": { + "truncated": { + "type": "boolean" + }, + "status": { + "type": "string" + }, + "url": { + "type": "string" } }, "required": [ - "name", - "statusCode" + "truncated", + "status", + "url" ], "type": "object" }, "status": { "type": "string", "enum": [ - "error" + "ok" ], "nullable": false } }, "required": [ - "error", + "results", "status" ], - "type": "object", - "description": "The Error object is returned from the api any time there is an error.\nThe message contains" + "type": "object" }, - "FieldType": { + "DashboardTileTypes": { "enum": [ - "metric", - "dimension" + "saved_chart", + "sql_chart", + "semantic_viewer_chart", + "markdown", + "loom" ], "type": "string" }, - "Pick_Field.name-or-label-or-fieldType-or-tableLabel-or-description_": { + "Required_CreateDashboardTileBase_": { "properties": { - "name": { + "uuid": { "type": "string" }, - "label": { - "type": "string" + "type": { + "$ref": "#/components/schemas/DashboardTileTypes" }, - "fieldType": { - "$ref": "#/components/schemas/FieldType" + "x": { + "type": "number", + "format": "double" }, - "tableLabel": { - "type": "string" + "y": { + "type": "number", + "format": "double" }, - "description": { + "h": { + "type": "number", + "format": "double" + }, + "w": { + "type": "number", + "format": "double" + }, + "tabUuid": { "type": "string" } }, "required": [ - "name", - "label", - "fieldType", - "tableLabel" + "uuid", + "type", + "x", + "y", + "h", + "w" ], "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Record_string.string-or-string-Array_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" - }, - "Pick_Dimension.requiredAttributes_": { - "properties": { - "requiredAttributes": { - "$ref": "#/components/schemas/Record_string.string-or-string-Array_" - } - }, - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "description": "Make all properties in T required" }, - "CatalogType.Field": { + "DashboardTileTypes.SAVED_CHART": { "enum": [ - "field" + "saved_chart" ], "type": "string" }, - "CatalogField": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_Field.name-or-label-or-fieldType-or-tableLabel-or-description_" - }, - { - "$ref": "#/components/schemas/Pick_Dimension.requiredAttributes_" - }, - { + "DashboardChartTileProperties": { + "properties": { + "properties": { "properties": { - "tags": { - "items": { - "type": "string" - }, - "type": "array" - }, - "tableGroupLabel": { + "chartSlug": { "type": "string" }, - "tableName": { - "type": "string" + "lastVersionChartKind": { + "allOf": [ + { + "$ref": "#/components/schemas/ChartKind" + } + ], + "nullable": true }, - "basicType": { - "type": "string" + "chartName": { + "type": "string", + "nullable": true }, - "type": { - "$ref": "#/components/schemas/CatalogType.Field" + "belongsToDashboard": { + "type": "boolean" + }, + "savedChartUuid": { + "type": "string", + "nullable": true + }, + "hideTitle": { + "type": "boolean" + }, + "title": { + "type": "string" } }, "required": [ - "tableName", - "type" + "savedChartUuid" ], "type": "object" - } - ] - }, - "Pick_TableBase.name-or-label-or-groupLabel-or-description-or-requiredAttributes_": { - "properties": { - "name": { - "type": "string" - }, - "label": { - "type": "string" - }, - "description": { - "type": "string" - }, - "requiredAttributes": { - "$ref": "#/components/schemas/Record_string.string-or-string-Array_" }, - "groupLabel": { - "type": "string" + "type": { + "$ref": "#/components/schemas/DashboardTileTypes.SAVED_CHART" } }, "required": [ - "name", - "label" + "properties", + "type" ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "type": "object" }, - "DbtModelJoinType": { - "type": "string", - "enum": [ - "inner", - "full", - "left", - "right" + "DashboardChartTile": { + "allOf": [ + { + "$ref": "#/components/schemas/Required_CreateDashboardTileBase_" + }, + { + "$ref": "#/components/schemas/DashboardChartTileProperties" + } ] }, - "Pick_ExploreJoin.table-or-sqlOn-or-type-or-hidden-or-always_": { + "DashboardTileTypes.MARKDOWN": { + "enum": [ + "markdown" + ], + "type": "string" + }, + "DashboardMarkdownTileProperties": { "properties": { - "table": { - "type": "string" - }, - "sqlOn": { - "type": "string" + "properties": { + "properties": { + "content": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "content", + "title" + ], + "type": "object" }, "type": { - "$ref": "#/components/schemas/DbtModelJoinType" - }, - "hidden": { - "type": "boolean" - }, - "always": { - "type": "boolean" + "$ref": "#/components/schemas/DashboardTileTypes.MARKDOWN" } }, "required": [ - "table", - "sqlOn" + "properties", + "type" ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "type": "object" }, - "CompiledExploreJoin": { + "DashboardMarkdownTile": { "allOf": [ { - "$ref": "#/components/schemas/Pick_ExploreJoin.table-or-sqlOn-or-type-or-hidden-or-always_" + "$ref": "#/components/schemas/Required_CreateDashboardTileBase_" }, { + "$ref": "#/components/schemas/DashboardMarkdownTileProperties" + } + ] + }, + "DashboardTileTypes.LOOM": { + "enum": [ + "loom" + ], + "type": "string" + }, + "DashboardLoomTileProperties": { + "properties": { + "properties": { "properties": { - "compiledSqlOn": { + "url": { + "type": "string" + }, + "hideTitle": { + "type": "boolean" + }, + "title": { "type": "string" } }, "required": [ - "compiledSqlOn" + "url", + "title" ], "type": "object" + }, + "type": { + "$ref": "#/components/schemas/DashboardTileTypes.LOOM" + } + }, + "required": [ + "properties", + "type" + ], + "type": "object" + }, + "DashboardLoomTile": { + "allOf": [ + { + "$ref": "#/components/schemas/Required_CreateDashboardTileBase_" + }, + { + "$ref": "#/components/schemas/DashboardLoomTileProperties" } ] }, - "CatalogType.Table": { - "enum": [ - "table" - ], - "type": "string" - }, - "InlineErrorType": { + "DashboardTileTypes.SQL_CHART": { "enum": [ - "METADATA_PARSE_ERROR", - "NO_DIMENSIONS_FOUND" + "sql_chart" ], "type": "string" }, - "InlineError": { + "DashboardSqlChartTileProperties": { "properties": { - "message": { - "type": "string" + "properties": { + "properties": { + "chartSlug": { + "type": "string" + }, + "hideTitle": { + "type": "boolean" + }, + "chartName": { + "type": "string" + }, + "savedSqlUuid": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string" + } + }, + "required": [ + "chartName", + "savedSqlUuid" + ], + "type": "object" }, "type": { - "$ref": "#/components/schemas/InlineErrorType" + "$ref": "#/components/schemas/DashboardTileTypes.SQL_CHART" } }, "required": [ - "message", + "properties", "type" ], "type": "object" }, - "CatalogTable": { + "DashboardSqlChartTile": { "allOf": [ { - "$ref": "#/components/schemas/Pick_TableBase.name-or-label-or-groupLabel-or-description-or-requiredAttributes_" + "$ref": "#/components/schemas/Required_CreateDashboardTileBase_" }, { + "$ref": "#/components/schemas/DashboardSqlChartTileProperties" + } + ] + }, + "DashboardTileTypes.SEMANTIC_VIEWER_CHART": { + "enum": [ + "semantic_viewer_chart" + ], + "type": "string" + }, + "DashboardSemanticViewerChartTileProperties": { + "properties": { + "properties": { "properties": { - "joinedTables": { - "items": { - "$ref": "#/components/schemas/CompiledExploreJoin" - }, - "type": "array" + "chartSlug": { + "type": "string" }, - "tags": { - "items": { - "type": "string" - }, - "type": "array" + "hideTitle": { + "type": "boolean" }, - "groupLabel": { + "chartName": { "type": "string" }, - "type": { - "$ref": "#/components/schemas/CatalogType.Table" + "savedSemanticViewerChartUuid": { + "type": "string", + "nullable": true }, - "errors": { - "items": { - "$ref": "#/components/schemas/InlineError" - }, - "type": "array" + "title": { + "type": "string" } }, "required": [ - "type" + "chartName", + "savedSemanticViewerChartUuid" ], "type": "object" + }, + "type": { + "$ref": "#/components/schemas/DashboardTileTypes.SEMANTIC_VIEWER_CHART" + } + }, + "required": [ + "properties", + "type" + ], + "type": "object" + }, + "DashboardSemanticViewerChartTile": { + "allOf": [ + { + "$ref": "#/components/schemas/Required_CreateDashboardTileBase_" + }, + { + "$ref": "#/components/schemas/DashboardSemanticViewerChartTileProperties" } ] }, - "CatalogItem": { + "DashboardTile": { "anyOf": [ { - "$ref": "#/components/schemas/CatalogField" + "$ref": "#/components/schemas/DashboardChartTile" }, { - "$ref": "#/components/schemas/CatalogTable" + "$ref": "#/components/schemas/DashboardMarkdownTile" + }, + { + "$ref": "#/components/schemas/DashboardLoomTile" + }, + { + "$ref": "#/components/schemas/DashboardSqlChartTile" + }, + { + "$ref": "#/components/schemas/DashboardSemanticViewerChartTile" } ] }, - "ApiCatalogResults": { - "items": { - "$ref": "#/components/schemas/CatalogItem" + "DashboardFieldTarget": { + "properties": { + "tableName": { + "type": "string" + }, + "fieldId": { + "type": "string" + } }, - "type": "array" + "required": [ + "tableName", + "fieldId" + ], + "type": "object" }, - "CatalogMetadata": { + "FilterRule_ConditionalOperator.T.V.any_": { "properties": { - "fieldType": { - "$ref": "#/components/schemas/FieldType" + "values": { + "items": {}, + "type": "array" }, - "tableLabel": { + "operator": { + "$ref": "#/components/schemas/ConditionalOperator" + }, + "id": { "type": "string" }, - "joinedTables": { + "target": { + "$ref": "#/components/schemas/DashboardFieldTarget" + }, + "settings": {}, + "disabled": { + "type": "boolean" + }, + "required": { + "type": "boolean" + } + }, + "required": [ + "operator", + "id", + "target" + ], + "type": "object", + "additionalProperties": true + }, + "Record_string.DashboardTileTarget_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "DashboardFilterRule": { + "allOf": [ + { + "$ref": "#/components/schemas/FilterRule_ConditionalOperator.T.V.any_" + }, + { + "properties": { + "label": { + "type": "string" + }, + "tileTargets": { + "$ref": "#/components/schemas/Record_string.DashboardTileTarget_" + } + }, + "type": "object" + } + ] + }, + "DashboardFilters": { + "properties": { + "tableCalculations": { "items": { - "type": "string" + "$ref": "#/components/schemas/DashboardFilterRule" }, "type": "array" }, - "fields": { + "metrics": { "items": { - "$ref": "#/components/schemas/CatalogField" + "$ref": "#/components/schemas/DashboardFilterRule" }, "type": "array" }, - "source": { - "type": "string" - }, - "modelName": { - "type": "string" - }, - "label": { + "dimensions": { + "items": { + "$ref": "#/components/schemas/DashboardFilterRule" + }, + "type": "array" + } + }, + "required": [ + "tableCalculations", + "metrics", + "dimensions" + ], + "type": "object" + }, + "UpdatedByUser": { + "properties": { + "userUuid": { "type": "string" }, - "description": { + "firstName": { "type": "string" }, - "name": { + "lastName": { "type": "string" } }, "required": [ - "joinedTables", - "fields", - "modelName", - "label", - "name" + "userUuid", + "firstName", + "lastName" + ], + "type": "object", + "additionalProperties": true + }, + "DashboardTab": { + "properties": { + "order": { + "type": "number", + "format": "double" + }, + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": [ + "order", + "name", + "uuid" ], "type": "object" }, - "ChartKind": { - "enum": [ - "line", - "horizontal_bar", - "vertical_bar", - "scatter", - "area", - "mixed", - "pie", - "table", - "big_number", - "funnel", - "custom" - ], - "type": "string" - }, - "Pick_ChartSummary.uuid-or-name-or-spaceUuid-or-spaceName-or-dashboardName-or-dashboardUuid-or-chartKind_": { + "Pick_Dashboard.Exclude_keyofDashboard.isPrivate-or-access__": { "properties": { "name": { "type": "string" }, + "description": { + "type": "string" + }, "uuid": { "type": "string" }, @@ -6517,16 +9810,65 @@ "spaceUuid": { "type": "string" }, - "dashboardUuid": { + "projectUuid": { + "type": "string" + }, + "organizationUuid": { + "type": "string" + }, + "pinnedListUuid": { "type": "string", "nullable": true }, - "dashboardName": { + "slug": { + "type": "string" + }, + "dashboardVersionId": { + "type": "number", + "format": "double" + }, + "updatedAt": { "type": "string", + "format": "date-time" + }, + "tiles": { + "items": { + "$ref": "#/components/schemas/DashboardTile" + }, + "type": "array" + }, + "filters": { + "$ref": "#/components/schemas/DashboardFilters" + }, + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" + }, + "views": { + "type": "number", + "format": "double" + }, + "firstViewedAt": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "string" + } + ], "nullable": true }, - "chartKind": { - "$ref": "#/components/schemas/ChartKind" + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true + }, + "tabs": { + "items": { + "$ref": "#/components/schemas/DashboardTab" + }, + "type": "array" } }, "required": [ @@ -6534,1280 +9876,1198 @@ "uuid", "spaceName", "spaceUuid", - "dashboardUuid", - "dashboardName" + "projectUuid", + "organizationUuid", + "pinnedListUuid", + "slug", + "dashboardVersionId", + "updatedAt", + "tiles", + "filters", + "views", + "firstViewedAt", + "pinnedListOrder", + "tabs" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "CatalogAnalytics": { + "ApiPromoteDashboardResponse": { "properties": { - "charts": { - "items": { - "$ref": "#/components/schemas/Pick_ChartSummary.uuid-or-name-or-spaceUuid-or-spaceName-or-dashboardName-or-dashboardUuid-or-chartKind_" - }, - "type": "array" + "results": { + "$ref": "#/components/schemas/Pick_Dashboard.Exclude_keyofDashboard.isPrivate-or-access__" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false } }, "required": [ - "charts" + "results", + "status" ], "type": "object" }, - "Pick_Comment.text-or-replyTo-or-mentions-or-textHtml_": { + "Pick_CompiledDimension.label-or-name_": { "properties": { - "text": { - "type": "string" - }, - "replyTo": { + "name": { "type": "string" }, - "mentions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "textHtml": { + "label": { "type": "string" } }, "required": [ - "text", - "mentions", - "textHtml" + "name", + "label" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "ApiCreateComment": { + "CustomDimensionType.BIN": { + "enum": [ + "bin" + ], + "type": "string" + }, + "FieldId": { + "type": "string" + }, + "BinType": { + "enum": [ + "fixed_number", + "fixed_width", + "custom_range" + ], + "type": "string" + }, + "BinRange": { "properties": { - "results": { - "type": "string" + "to": { + "type": "number", + "format": "double" }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false + "from": { + "type": "number", + "format": "double" } }, - "required": [ - "results", - "status" - ], "type": "object" }, - "Comment": { + "CustomBinDimension": { "properties": { - "mentions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "canRemove": { - "type": "boolean" - }, - "resolved": { - "type": "boolean" + "id": { + "type": "string" }, - "replies": { - "items": { - "$ref": "#/components/schemas/Comment" - }, - "type": "array" + "name": { + "type": "string" }, - "replyTo": { + "table": { "type": "string" }, - "user": { - "properties": { - "name": { - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" + "type": { + "$ref": "#/components/schemas/CustomDimensionType.BIN" }, - "createdAt": { - "type": "string", - "format": "date-time" + "dimensionId": { + "$ref": "#/components/schemas/FieldId" }, - "textHtml": { - "type": "string" + "binType": { + "$ref": "#/components/schemas/BinType" }, - "text": { - "type": "string" + "binNumber": { + "type": "number", + "format": "double" }, - "commentId": { - "type": "string" - } - }, - "required": [ - "mentions", - "canRemove", - "resolved", - "user", - "createdAt", - "textHtml", - "text", - "commentId" - ], - "type": "object" - }, - "ApiGetComments": { - "properties": { - "results": { - "properties": {}, - "additionalProperties": { - "items": { - "$ref": "#/components/schemas/Comment" - }, - "type": "array" + "binWidth": { + "type": "number", + "format": "double" + }, + "customRange": { + "items": { + "$ref": "#/components/schemas/BinRange" }, - "type": "object" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false + "type": "array" } }, "required": [ - "results", - "status" + "id", + "name", + "table", + "type", + "dimensionId", + "binType" ], - "type": "object" + "type": "object", + "additionalProperties": true }, - "ApiResolveComment": { - "properties": { - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "status" + "CustomDimensionType.SQL": { + "enum": [ + "sql" ], - "type": "object" + "type": "string" }, - "ApiCsvUrlResponse": { + "CustomSqlDimension": { "properties": { - "results": { - "properties": { - "truncated": { - "type": "boolean" - }, - "status": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": [ - "truncated", - "status", - "url" - ], - "type": "object" + "id": { + "type": "string" }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false + "name": { + "type": "string" + }, + "table": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/CustomDimensionType.SQL" + }, + "sql": { + "type": "string" + }, + "dimensionType": { + "$ref": "#/components/schemas/DimensionType" } }, "required": [ - "results", - "status" + "id", + "name", + "table", + "type", + "sql", + "dimensionType" ], - "type": "object" + "type": "object", + "additionalProperties": true }, - "DashboardTileTypes": { - "enum": [ - "saved_chart", - "sql_chart", - "semantic_viewer_chart", - "markdown", - "loom" - ], - "type": "string" + "CustomDimension": { + "anyOf": [ + { + "$ref": "#/components/schemas/CustomBinDimension" + }, + { + "$ref": "#/components/schemas/CustomSqlDimension" + } + ] }, - "Required_CreateDashboardTileBase_": { + "AdditionalMetric": { "properties": { - "uuid": { + "label": { "type": "string" }, "type": { - "$ref": "#/components/schemas/DashboardTileTypes" + "$ref": "#/components/schemas/MetricType" }, - "x": { - "type": "number", - "format": "double" + "description": { + "type": "string" }, - "y": { + "sql": { + "type": "string" + }, + "hidden": { + "type": "boolean" + }, + "round": { "type": "number", "format": "double" }, - "h": { + "compact": { + "$ref": "#/components/schemas/CompactOrAlias" + }, + "format": { + "$ref": "#/components/schemas/Format" + }, + "table": { + "type": "string" + }, + "name": { + "type": "string" + }, + "index": { "type": "number", "format": "double" }, - "w": { + "filters": { + "items": { + "$ref": "#/components/schemas/MetricFilterRule" + }, + "type": "array" + }, + "baseDimensionName": { + "type": "string" + }, + "uuid": { + "type": "string", + "nullable": true + }, + "percentile": { "type": "number", "format": "double" }, - "tabUuid": { - "type": "string" + "formatOptions": { + "$ref": "#/components/schemas/CustomFormat" } }, "required": [ - "uuid", "type", - "x", - "y", - "h", - "w" + "sql", + "table", + "name" ], "type": "object", - "description": "Make all properties in T required" + "additionalProperties": true }, - "DashboardTileTypes.SAVED_CHART": { + "TableCalculationType": { "enum": [ - "saved_chart" + "number", + "string", + "date", + "timestamp", + "boolean" ], "type": "string" }, - "DashboardChartTileProperties": { + "TableCalculation": { "properties": { - "properties": { - "properties": { - "lastVersionChartKind": { - "allOf": [ - { - "$ref": "#/components/schemas/ChartKind" - } - ], - "nullable": true - }, - "chartName": { - "type": "string", - "nullable": true - }, - "belongsToDashboard": { - "type": "boolean" - }, - "savedChartUuid": { - "type": "string", - "nullable": true - }, - "hideTitle": { - "type": "boolean" - }, - "title": { - "type": "string" - } - }, - "required": [ - "savedChartUuid" - ], - "type": "object" - }, "type": { - "$ref": "#/components/schemas/DashboardTileTypes.SAVED_CHART" + "$ref": "#/components/schemas/TableCalculationType" + }, + "format": { + "$ref": "#/components/schemas/CustomFormat" + }, + "sql": { + "type": "string" + }, + "displayName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "index": { + "type": "number", + "format": "double" } }, "required": [ - "properties", - "type" + "sql", + "displayName", + "name" ], "type": "object" }, - "DashboardChartTile": { - "allOf": [ + "SortField": { + "properties": { + "descending": { + "type": "boolean" + }, + "fieldId": { + "type": "string" + } + }, + "required": [ + "descending", + "fieldId" + ], + "type": "object" + }, + "FilterGroup": { + "anyOf": [ { - "$ref": "#/components/schemas/Required_CreateDashboardTileBase_" + "$ref": "#/components/schemas/OrFilterGroup" }, { - "$ref": "#/components/schemas/DashboardChartTileProperties" + "$ref": "#/components/schemas/AndFilterGroup" } ] }, - "DashboardTileTypes.MARKDOWN": { - "enum": [ - "markdown" + "FieldTarget": { + "properties": { + "fieldId": { + "type": "string" + } + }, + "required": [ + "fieldId" ], - "type": "string" + "type": "object" }, - "DashboardMarkdownTileProperties": { + "FilterRule": { "properties": { - "properties": { - "properties": { - "content": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": [ - "content", - "title" - ], - "type": "object" + "values": { + "items": {}, + "type": "array" }, - "type": { - "$ref": "#/components/schemas/DashboardTileTypes.MARKDOWN" + "operator": { + "$ref": "#/components/schemas/ConditionalOperator" + }, + "id": { + "type": "string" + }, + "target": { + "$ref": "#/components/schemas/FieldTarget" + }, + "settings": {}, + "disabled": { + "type": "boolean" + }, + "required": { + "type": "boolean" } }, "required": [ - "properties", - "type" + "operator", + "id", + "target" ], - "type": "object" + "type": "object", + "additionalProperties": true }, - "DashboardMarkdownTile": { - "allOf": [ + "FilterGroupItem": { + "anyOf": [ { - "$ref": "#/components/schemas/Required_CreateDashboardTileBase_" + "$ref": "#/components/schemas/FilterGroup" }, { - "$ref": "#/components/schemas/DashboardMarkdownTileProperties" + "$ref": "#/components/schemas/FilterRule" } ] }, - "DashboardTileTypes.LOOM": { - "enum": [ - "loom" + "OrFilterGroup": { + "properties": { + "or": { + "items": { + "$ref": "#/components/schemas/FilterGroupItem" + }, + "type": "array" + }, + "id": { + "type": "string" + } + }, + "required": [ + "or", + "id" ], - "type": "string" + "type": "object" }, - "DashboardLoomTileProperties": { + "AndFilterGroup": { "properties": { - "properties": { - "properties": { - "url": { - "type": "string" - }, - "hideTitle": { - "type": "boolean" - }, - "title": { - "type": "string" - } + "and": { + "items": { + "$ref": "#/components/schemas/FilterGroupItem" }, - "required": [ - "url", - "title" - ], - "type": "object" + "type": "array" }, - "type": { - "$ref": "#/components/schemas/DashboardTileTypes.LOOM" + "id": { + "type": "string" } }, "required": [ - "properties", - "type" + "and", + "id" ], "type": "object" }, - "DashboardLoomTile": { - "allOf": [ - { - "$ref": "#/components/schemas/Required_CreateDashboardTileBase_" + "Filters": { + "properties": { + "tableCalculations": { + "$ref": "#/components/schemas/FilterGroup" }, - { - "$ref": "#/components/schemas/DashboardLoomTileProperties" + "metrics": { + "$ref": "#/components/schemas/FilterGroup" + }, + "dimensions": { + "$ref": "#/components/schemas/FilterGroup" } - ] - }, - "DashboardTileTypes.SQL_CHART": { - "enum": [ - "sql_chart" - ], - "type": "string" + }, + "type": "object" }, - "DashboardSqlChartTileProperties": { + "MetricQuery": { "properties": { - "properties": { + "metadata": { "properties": { - "hideTitle": { - "type": "boolean" - }, - "chartName": { - "type": "string" - }, - "savedSqlUuid": { - "type": "string", - "nullable": true - }, - "title": { - "type": "string" + "hasADateDimension": { + "$ref": "#/components/schemas/Pick_CompiledDimension.label-or-name_" } }, "required": [ - "chartName", - "savedSqlUuid" + "hasADateDimension" ], "type": "object" }, - "type": { - "$ref": "#/components/schemas/DashboardTileTypes.SQL_CHART" + "timezone": { + "type": "string" + }, + "customDimensions": { + "items": { + "$ref": "#/components/schemas/CustomDimension" + }, + "type": "array" + }, + "additionalMetrics": { + "items": { + "$ref": "#/components/schemas/AdditionalMetric" + }, + "type": "array" + }, + "tableCalculations": { + "items": { + "$ref": "#/components/schemas/TableCalculation" + }, + "type": "array" + }, + "limit": { + "type": "number", + "format": "double" + }, + "sorts": { + "items": { + "$ref": "#/components/schemas/SortField" + }, + "type": "array" + }, + "filters": { + "$ref": "#/components/schemas/Filters" + }, + "metrics": { + "items": { + "$ref": "#/components/schemas/FieldId" + }, + "type": "array" + }, + "dimensions": { + "items": { + "$ref": "#/components/schemas/FieldId" + }, + "type": "array" + }, + "exploreName": { + "type": "string" } }, "required": [ - "properties", - "type" + "tableCalculations", + "limit", + "sorts", + "filters", + "metrics", + "dimensions", + "exploreName" ], "type": "object" }, - "DashboardSqlChartTile": { - "allOf": [ - { - "$ref": "#/components/schemas/Required_CreateDashboardTileBase_" + "ComparisonFormatTypes": { + "enum": [ + "raw", + "percentage" + ], + "type": "string" + }, + "BigNumber": { + "properties": { + "comparisonLabel": { + "type": "string" + }, + "flipColors": { + "type": "boolean" + }, + "comparisonFormat": { + "$ref": "#/components/schemas/ComparisonFormatTypes" + }, + "showComparison": { + "type": "boolean" + }, + "showBigNumberLabel": { + "type": "boolean" + }, + "selectedField": { + "type": "string" + }, + "style": { + "$ref": "#/components/schemas/CompactOrAlias" }, - { - "$ref": "#/components/schemas/DashboardSqlChartTileProperties" + "label": { + "type": "string" } - ] + }, + "type": "object" }, - "DashboardTileTypes.SEMANTIC_VIEWER_CHART": { + "ChartType.BIG_NUMBER": { "enum": [ - "semantic_viewer_chart" + "big_number" ], "type": "string" }, - "DashboardSemanticViewerChartTileProperties": { + "BigNumberConfig": { "properties": { - "properties": { - "properties": { - "hideTitle": { - "type": "boolean" - }, - "chartName": { - "type": "string" - }, - "savedSemanticViewerChartUuid": { - "type": "string", - "nullable": true - }, - "title": { - "type": "string" - } - }, - "required": [ - "chartName", - "savedSemanticViewerChartUuid" - ], - "type": "object" + "config": { + "$ref": "#/components/schemas/BigNumber" }, "type": { - "$ref": "#/components/schemas/DashboardTileTypes.SEMANTIC_VIEWER_CHART" + "$ref": "#/components/schemas/ChartType.BIG_NUMBER" } }, "required": [ - "properties", "type" ], "type": "object" }, - "DashboardSemanticViewerChartTile": { - "allOf": [ - { - "$ref": "#/components/schemas/Required_CreateDashboardTileBase_" - }, - { - "$ref": "#/components/schemas/DashboardSemanticViewerChartTileProperties" - } - ] + "Record_string.SeriesMetadata_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" }, - "DashboardTile": { - "anyOf": [ - { - "$ref": "#/components/schemas/DashboardChartTile" + "EchartsLegend": { + "properties": { + "icon": { + "type": "string", + "enum": [ + "circle", + "rect", + "roundRect", + "triangle", + "diamond", + "pin", + "arrow", + "none" + ] }, - { - "$ref": "#/components/schemas/DashboardMarkdownTile" + "align": { + "type": "string", + "enum": [ + "auto", + "left", + "right" + ] }, - { - "$ref": "#/components/schemas/DashboardLoomTile" + "height": { + "type": "string" }, - { - "$ref": "#/components/schemas/DashboardSqlChartTile" + "width": { + "type": "string" }, - { - "$ref": "#/components/schemas/DashboardSemanticViewerChartTile" - } - ] - }, - "ConditionalOperator": { - "enum": [ - "isNull", - "notNull", - "equals", - "notEquals", - "startsWith", - "endsWith", - "include", - "doesNotInclude", - "lessThan", - "lessThanOrEqual", - "greaterThan", - "greaterThanOrEqual", - "inThePast", - "notInThePast", - "inTheNext", - "inTheCurrent", - "notInTheCurrent", - "inBetween" - ], - "type": "string" - }, - "DashboardFieldTarget": { - "properties": { - "tableName": { + "left": { "type": "string" }, - "fieldId": { + "bottom": { + "type": "string" + }, + "right": { "type": "string" + }, + "top": { + "type": "string" + }, + "orient": { + "type": "string", + "enum": [ + "horizontal", + "vertical" + ] + }, + "type": { + "type": "string", + "enum": [ + "plain", + "scroll" + ] + }, + "show": { + "type": "boolean" } }, - "required": [ - "tableName", - "fieldId" - ], "type": "object" }, - "FilterRule_ConditionalOperator.T.V.any_": { + "EchartsGrid": { "properties": { - "values": { - "items": {}, - "type": "array" + "height": { + "type": "string" }, - "operator": { - "$ref": "#/components/schemas/ConditionalOperator" + "width": { + "type": "string" }, - "id": { + "left": { "type": "string" }, - "target": { - "$ref": "#/components/schemas/DashboardFieldTarget" + "bottom": { + "type": "string" }, - "settings": {}, - "disabled": { - "type": "boolean" + "right": { + "type": "string" }, - "required": { + "top": { + "type": "string" + }, + "containLabel": { "type": "boolean" } }, - "required": [ - "operator", - "id", - "target" - ], - "type": "object", - "additionalProperties": true - }, - "Record_string.DashboardTileTarget_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" + "type": "object" }, - "DashboardFilterRule": { - "allOf": [ - { - "$ref": "#/components/schemas/FilterRule_ConditionalOperator.T.V.any_" + "MarkLineData": { + "properties": { + "dynamicValue": { + "type": "string", + "enum": [ + "average" + ], + "nullable": false }, - { + "label": { "properties": { - "label": { - "type": "string" + "position": { + "type": "string", + "enum": [ + "start", + "middle", + "end" + ] }, - "tileTargets": { - "$ref": "#/components/schemas/Record_string.DashboardTileTarget_" + "formatter": { + "type": "string" } }, "type": "object" - } - ] - }, - "DashboardFilters": { - "properties": { - "tableCalculations": { - "items": { - "$ref": "#/components/schemas/DashboardFilterRule" - }, - "type": "array" - }, - "metrics": { - "items": { - "$ref": "#/components/schemas/DashboardFilterRule" - }, - "type": "array" }, - "dimensions": { - "items": { - "$ref": "#/components/schemas/DashboardFilterRule" + "lineStyle": { + "properties": { + "color": { + "type": "string" + } }, - "type": "array" - } - }, - "required": [ - "tableCalculations", - "metrics", - "dimensions" - ], - "type": "object" - }, - "UpdatedByUser": { - "properties": { - "userUuid": { + "required": [ + "color" + ], + "type": "object" + }, + "uuid": { "type": "string" }, - "firstName": { + "type": { "type": "string" }, - "lastName": { + "value": { "type": "string" - } - }, - "required": [ - "userUuid", - "firstName", - "lastName" - ], - "type": "object", - "additionalProperties": true - }, - "DashboardTab": { - "properties": { - "order": { - "type": "number", - "format": "double" }, "name": { "type": "string" }, - "uuid": { + "xAxis": { + "type": "string" + }, + "yAxis": { "type": "string" } }, "required": [ - "order", - "name", "uuid" ], "type": "object" }, - "Pick_Dashboard.Exclude_keyofDashboard.isPrivate-or-access__": { + "MarkLine": { "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "uuid": { - "type": "string" - }, - "spaceName": { - "type": "string" - }, - "spaceUuid": { - "type": "string" - }, - "projectUuid": { - "type": "string" - }, - "organizationUuid": { - "type": "string" - }, - "pinnedListUuid": { - "type": "string", - "nullable": true - }, - "slug": { - "type": "string" - }, - "dashboardVersionId": { - "type": "number", - "format": "double" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "tiles": { - "items": { - "$ref": "#/components/schemas/DashboardTile" + "label": { + "properties": { + "formatter": { + "type": "string" + } }, - "type": "array" - }, - "filters": { - "$ref": "#/components/schemas/DashboardFilters" - }, - "updatedByUser": { - "$ref": "#/components/schemas/UpdatedByUser" - }, - "views": { - "type": "number", - "format": "double" + "type": "object" }, - "firstViewedAt": { - "anyOf": [ - { - "type": "string", - "format": "date-time" + "lineStyle": { + "properties": { + "type": { + "type": "string" }, - { + "width": { + "type": "number", + "format": "double" + }, + "color": { "type": "string" } + }, + "required": [ + "type", + "width", + "color" ], - "nullable": true + "type": "object" }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true + "symbol": { + "type": "string" }, - "tabs": { + "data": { "items": { - "$ref": "#/components/schemas/DashboardTab" + "$ref": "#/components/schemas/MarkLineData" }, "type": "array" } }, "required": [ - "name", - "uuid", - "spaceName", - "spaceUuid", - "projectUuid", - "organizationUuid", - "pinnedListUuid", - "slug", - "dashboardVersionId", - "updatedAt", - "tiles", - "filters", - "views", - "firstViewedAt", - "pinnedListOrder", - "tabs" + "data" ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "type": "object" }, - "ApiPromoteDashboardResponse": { + "CartesianSeriesType": { + "enum": [ + "line", + "bar", + "scatter", + "area" + ], + "type": "string" + }, + "PivotValue": { "properties": { - "results": { - "$ref": "#/components/schemas/Pick_Dashboard.Exclude_keyofDashboard.isPrivate-or-access__" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false + "value": {}, + "field": { + "type": "string" } }, "required": [ - "results", - "status" + "value", + "field" ], "type": "object" }, - "Pick_CompiledDimension.label-or-name_": { + "PivotReference": { "properties": { - "name": { - "type": "string" + "pivotValues": { + "items": { + "$ref": "#/components/schemas/PivotValue" + }, + "type": "array" }, - "label": { + "field": { "type": "string" } }, "required": [ - "name", - "label" - ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "CustomDimensionType.BIN": { - "enum": [ - "bin" - ], - "type": "string" - }, - "FieldId": { - "type": "string" - }, - "BinType": { - "enum": [ - "fixed_number", - "fixed_width", - "custom_range" + "field" ], - "type": "string" + "type": "object" }, - "BinRange": { + "Series": { "properties": { - "to": { - "type": "number", - "format": "double" + "markLine": { + "$ref": "#/components/schemas/MarkLine" }, - "from": { + "smooth": { + "type": "boolean" + }, + "showSymbol": { + "type": "boolean" + }, + "areaStyle": { + "properties": {}, + "type": "object" + }, + "hidden": { + "type": "boolean" + }, + "label": { + "properties": { + "position": { + "type": "string", + "enum": [ + "left", + "top", + "right", + "bottom", + "inside" + ] + }, + "show": { + "type": "boolean" + } + }, + "type": "object" + }, + "yAxisIndex": { "type": "number", "format": "double" - } - }, - "type": "object" - }, - "CustomBinDimension": { - "properties": { - "id": { + }, + "color": { "type": "string" }, "name": { "type": "string" }, - "table": { + "stackLabel": { + "properties": { + "show": { + "type": "boolean" + } + }, + "type": "object" + }, + "stack": { "type": "string" }, "type": { - "$ref": "#/components/schemas/CustomDimensionType.BIN" - }, - "dimensionId": { - "$ref": "#/components/schemas/FieldId" - }, - "binType": { - "$ref": "#/components/schemas/BinType" - }, - "binNumber": { - "type": "number", - "format": "double" - }, - "binWidth": { - "type": "number", - "format": "double" + "$ref": "#/components/schemas/CartesianSeriesType" }, - "customRange": { - "items": { - "$ref": "#/components/schemas/BinRange" + "encode": { + "properties": { + "y": { + "type": "string" + }, + "x": { + "type": "string" + }, + "yRef": { + "$ref": "#/components/schemas/PivotReference" + }, + "xRef": { + "$ref": "#/components/schemas/PivotReference" + } }, - "type": "array" + "required": [ + "yRef", + "xRef" + ], + "type": "object" } }, "required": [ - "id", - "name", - "table", "type", - "dimensionId", - "binType" - ], - "type": "object", - "additionalProperties": true - }, - "CustomDimensionType.SQL": { - "enum": [ - "sql" - ], - "type": "string" - }, - "DimensionType": { - "enum": [ - "string", - "number", - "timestamp", - "date", - "boolean" + "encode" ], - "type": "string" + "type": "object" }, - "CustomSqlDimension": { + "Axis": { "properties": { - "id": { - "type": "string" + "rotate": { + "type": "number", + "format": "double" }, - "name": { + "inverse": { + "type": "boolean" + }, + "maxOffset": { "type": "string" }, - "table": { + "minOffset": { "type": "string" }, - "type": { - "$ref": "#/components/schemas/CustomDimensionType.SQL" + "max": { + "type": "string" }, - "sql": { + "min": { "type": "string" }, - "dimensionType": { - "$ref": "#/components/schemas/DimensionType" + "name": { + "type": "string" } }, - "required": [ - "id", - "name", - "table", - "type", - "sql", - "dimensionType" - ], - "type": "object", - "additionalProperties": true + "type": "object" }, - "CustomDimension": { - "anyOf": [ - { - "$ref": "#/components/schemas/CustomBinDimension" + "Partial_CompleteEChartsConfig_": { + "properties": { + "legend": { + "$ref": "#/components/schemas/EchartsLegend" }, - { - "$ref": "#/components/schemas/CustomSqlDimension" - } - ] - }, - "MetricType": { - "enum": [ - "percentile", - "average", - "count", - "count_distinct", - "sum", - "min", - "max", - "number", - "median", - "string", - "date", - "timestamp", - "boolean" - ], - "type": "string" - }, - "Compact": { - "enum": [ - "thousands", - "millions", - "billions", - "trillions" - ], - "type": "string" - }, - "CompactOrAlias": { - "anyOf": [ - { - "$ref": "#/components/schemas/Compact" + "grid": { + "$ref": "#/components/schemas/EchartsGrid" }, - { - "type": "string", - "enum": [ - "K", - "thousand", - "M", - "million", - "B", - "billion", - "T", - "trillion" - ] - } - ] - }, - "Format": { - "enum": [ - "km", - "mi", - "usd", - "gbp", - "eur", - "id", - "percent" - ], - "type": "string" - }, - "MetricFilterRule": { - "properties": { - "values": { - "items": {}, + "series": { + "items": { + "$ref": "#/components/schemas/Series" + }, "type": "array" }, - "operator": { - "$ref": "#/components/schemas/ConditionalOperator" + "xAxis": { + "items": { + "$ref": "#/components/schemas/Axis" + }, + "type": "array" }, - "id": { + "yAxis": { + "items": { + "$ref": "#/components/schemas/Axis" + }, + "type": "array" + } + }, + "type": "object", + "description": "Make all properties in T optional" + }, + "Partial_CompleteCartesianChartLayout_": { + "properties": { + "xField": { "type": "string" }, - "target": { - "properties": { - "fieldRef": { - "type": "string" - } + "yField": { + "items": { + "type": "string" }, - "required": [ - "fieldRef" - ], - "type": "object" + "type": "array" }, - "settings": {}, - "disabled": { + "flipAxes": { "type": "boolean" }, - "required": { + "showGridX": { + "type": "boolean" + }, + "showGridY": { "type": "boolean" } }, - "required": [ - "operator", - "id", - "target" - ], "type": "object", - "additionalProperties": true + "description": "Make all properties in T optional" }, - "CustomFormatType": { - "enum": [ - "default", - "percent", - "currency", - "number", - "id", - "date", - "timestamp" + "CartesianChart": { + "properties": { + "metadata": { + "$ref": "#/components/schemas/Record_string.SeriesMetadata_" + }, + "eChartsConfig": { + "$ref": "#/components/schemas/Partial_CompleteEChartsConfig_" + }, + "layout": { + "$ref": "#/components/schemas/Partial_CompleteCartesianChartLayout_" + } + }, + "required": [ + "eChartsConfig", + "layout" ], - "type": "string" + "type": "object" }, - "NumberSeparator": { + "ChartType.CARTESIAN": { "enum": [ - "default", - "commaPeriod", - "spacePeriod", - "periodComma", - "noSeparatorPeriod" + "cartesian" ], "type": "string" }, - "TimeFrames": { + "CartesianChartConfig": { + "properties": { + "config": { + "$ref": "#/components/schemas/CartesianChart" + }, + "type": { + "$ref": "#/components/schemas/ChartType.CARTESIAN" + } + }, + "required": [ + "type" + ], + "type": "object" + }, + "CustomVis": { + "properties": { + "spec": { + "additionalProperties": true, + "type": "object" + } + }, + "type": "object" + }, + "ChartType.CUSTOM": { "enum": [ - "RAW", - "YEAR", - "QUARTER", - "MONTH", - "WEEK", - "DAY", - "HOUR", - "MINUTE", - "SECOND", - "MILLISECOND", - "DAY_OF_WEEK_INDEX", - "DAY_OF_MONTH_NUM", - "DAY_OF_YEAR_NUM", - "WEEK_NUM", - "MONTH_NUM", - "QUARTER_NUM", - "YEAR_NUM", - "DAY_OF_WEEK_NAME", - "MONTH_NAME", - "QUARTER_NAME", - "HOUR_OF_DAY_NUM", - "MINUTE_OF_HOUR_NUM" + "custom" ], "type": "string" }, - "CustomFormat": { + "CustomVisConfig": { "properties": { - "type": { - "$ref": "#/components/schemas/CustomFormatType" - }, - "round": { - "type": "number", - "format": "double" - }, - "separator": { - "$ref": "#/components/schemas/NumberSeparator" - }, - "currency": { - "type": "string" - }, - "compact": { - "$ref": "#/components/schemas/CompactOrAlias" - }, - "prefix": { - "type": "string" - }, - "suffix": { - "type": "string" + "config": { + "$ref": "#/components/schemas/CustomVis" }, - "timeInterval": { - "$ref": "#/components/schemas/TimeFrames" + "type": { + "$ref": "#/components/schemas/ChartType.CUSTOM" } }, "required": [ "type" ], + "type": "object" + }, + "PieChartLegendPosition": { + "type": "string", + "enum": [ + "horizontal", + "vertical" + ], + "nullable": false + }, + "Record_string.Partial_PieChartValueOptions__": { + "properties": {}, "type": "object", - "additionalProperties": true + "description": "Construct a type with a set of properties K of type T" }, - "AdditionalMetric": { + "PieChartValueLabel": { + "type": "string", + "enum": [ + "hidden", + "inside", + "outside" + ], + "nullable": false + }, + "PieChart": { "properties": { - "label": { - "type": "string" + "metadata": { + "$ref": "#/components/schemas/Record_string.SeriesMetadata_" }, - "type": { - "$ref": "#/components/schemas/MetricType" + "legendPosition": { + "$ref": "#/components/schemas/PieChartLegendPosition" }, - "description": { - "type": "string" + "showLegend": { + "type": "boolean" }, - "sql": { - "type": "string" + "groupSortOverrides": { + "items": { + "type": "string" + }, + "type": "array" }, - "hidden": { - "type": "boolean" + "groupValueOptionOverrides": { + "$ref": "#/components/schemas/Record_string.Partial_PieChartValueOptions__" }, - "round": { - "type": "number", - "format": "double" + "groupColorOverrides": { + "$ref": "#/components/schemas/Record_string.string_" }, - "compact": { - "$ref": "#/components/schemas/CompactOrAlias" + "groupLabelOverrides": { + "$ref": "#/components/schemas/Record_string.string_" }, - "format": { - "$ref": "#/components/schemas/Format" + "showPercentage": { + "type": "boolean" }, - "table": { - "type": "string" + "showValue": { + "type": "boolean" }, - "name": { - "type": "string" + "valueLabel": { + "$ref": "#/components/schemas/PieChartValueLabel" }, - "index": { - "type": "number", - "format": "double" + "isDonut": { + "type": "boolean" }, - "filters": { + "metricId": { + "type": "string" + }, + "groupFieldIds": { "items": { - "$ref": "#/components/schemas/MetricFilterRule" + "type": "string" }, "type": "array" + } + }, + "type": "object" + }, + "ChartType.PIE": { + "enum": [ + "pie" + ], + "type": "string" + }, + "PieChartConfig": { + "properties": { + "config": { + "$ref": "#/components/schemas/PieChart" }, - "baseDimensionName": { - "type": "string" - }, - "uuid": { - "type": "string", - "nullable": true - }, - "percentile": { - "type": "number", - "format": "double" - }, - "formatOptions": { - "$ref": "#/components/schemas/CustomFormat" + "type": { + "$ref": "#/components/schemas/ChartType.PIE" } }, "required": [ - "type", - "sql", - "table", - "name" + "type" ], - "type": "object", - "additionalProperties": true + "type": "object" }, - "TableCalculationType": { + "FunnelChartLegendPosition": { "enum": [ - "number", - "string", - "date", - "timestamp", - "boolean" + "horizontal", + "vertical" ], "type": "string" }, - "TableCalculation": { + "FunnelChartLabelPosition": { + "enum": [ + "inside", + "left", + "right", + "hidden" + ], + "type": "string" + }, + "FunnelChartDataInput": { + "enum": [ + "row", + "column" + ], + "type": "string" + }, + "FunnelChart": { "properties": { - "type": { - "$ref": "#/components/schemas/TableCalculationType" + "legendPosition": { + "$ref": "#/components/schemas/FunnelChartLegendPosition" }, - "format": { - "$ref": "#/components/schemas/CustomFormat" + "showLegend": { + "type": "boolean" }, - "sql": { - "type": "string" + "labels": { + "properties": { + "showPercentage": { + "type": "boolean" + }, + "showValue": { + "type": "boolean" + }, + "position": { + "$ref": "#/components/schemas/FunnelChartLabelPosition" + } + }, + "type": "object" }, - "displayName": { - "type": "string" + "colorOverrides": { + "$ref": "#/components/schemas/Record_string.string_" }, - "name": { - "type": "string" + "labelOverrides": { + "$ref": "#/components/schemas/Record_string.string_" }, - "index": { - "type": "number", - "format": "double" - } - }, - "required": [ - "sql", - "displayName", - "name" - ], - "type": "object" - }, - "SortField": { - "properties": { - "descending": { - "type": "boolean" + "metadata": { + "$ref": "#/components/schemas/Record_string.SeriesMetadata_" }, "fieldId": { "type": "string" + }, + "dataInput": { + "$ref": "#/components/schemas/FunnelChartDataInput" } }, - "required": [ - "descending", - "fieldId" - ], "type": "object" }, - "FilterGroup": { - "anyOf": [ - { - "$ref": "#/components/schemas/OrFilterGroup" - }, - { - "$ref": "#/components/schemas/AndFilterGroup" - } - ] + "ChartType.FUNNEL": { + "enum": [ + "funnel" + ], + "type": "string" }, - "FieldTarget": { + "FunnelChartConfig": { "properties": { - "fieldId": { - "type": "string" + "config": { + "$ref": "#/components/schemas/FunnelChart" + }, + "type": { + "$ref": "#/components/schemas/ChartType.FUNNEL" } }, "required": [ - "fieldId" + "type" ], "type": "object" }, - "FilterRule": { + "ConditionalRule_ConditionalOperator.number_": { "properties": { "values": { - "items": {}, + "items": { + "type": "number", + "format": "double" + }, "type": "array" }, "operator": { @@ -7815,209 +11075,187 @@ }, "id": { "type": "string" - }, - "target": { - "$ref": "#/components/schemas/FieldTarget" - }, - "settings": {}, - "disabled": { - "type": "boolean" - }, - "required": { - "type": "boolean" } }, "required": [ "operator", - "id", - "target" + "id" ], - "type": "object", - "additionalProperties": true + "type": "object" }, - "FilterGroupItem": { - "anyOf": [ + "ConditionalFormattingWithConditionalOperator": { + "allOf": [ { - "$ref": "#/components/schemas/FilterGroup" + "$ref": "#/components/schemas/ConditionalRule_ConditionalOperator.number_" }, { - "$ref": "#/components/schemas/FilterRule" + "properties": { + "values": { + "items": { + "type": "number", + "format": "double" + }, + "type": "array" + } + }, + "required": [ + "values" + ], + "type": "object" } ] }, - "OrFilterGroup": { + "ConditionalFormattingConfigWithSingleColor": { "properties": { - "or": { + "rules": { "items": { - "$ref": "#/components/schemas/FilterGroupItem" + "$ref": "#/components/schemas/ConditionalFormattingWithConditionalOperator" }, "type": "array" }, - "id": { + "color": { "type": "string" + }, + "target": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldTarget" + } + ], + "nullable": true } }, "required": [ - "or", - "id" + "rules", + "color", + "target" ], "type": "object" }, - "AndFilterGroup": { + "ConditionalFormattingWithRange": { "properties": { - "and": { - "items": { - "$ref": "#/components/schemas/FilterGroupItem" - }, - "type": "array" + "max": { + "type": "number", + "format": "double" }, - "id": { - "type": "string" + "min": { + "type": "number", + "format": "double" } }, "required": [ - "and", - "id" + "max", + "min" ], "type": "object" }, - "Filters": { + "ConditionalFormattingConfigWithColorRange": { "properties": { - "tableCalculations": { - "$ref": "#/components/schemas/FilterGroup" - }, - "metrics": { - "$ref": "#/components/schemas/FilterGroup" + "rule": { + "$ref": "#/components/schemas/ConditionalFormattingWithRange" }, - "dimensions": { - "$ref": "#/components/schemas/FilterGroup" - } - }, - "type": "object" - }, - "MetricQuery": { - "properties": { - "metadata": { + "color": { "properties": { - "hasADateDimension": { - "$ref": "#/components/schemas/Pick_CompiledDimension.label-or-name_" + "steps": { + "type": "number", + "enum": [ + 5 + ], + "nullable": false + }, + "end": { + "type": "string" + }, + "start": { + "type": "string" } }, "required": [ - "hasADateDimension" + "steps", + "end", + "start" ], "type": "object" }, - "timezone": { - "type": "string" - }, - "customDimensions": { - "items": { - "$ref": "#/components/schemas/CustomDimension" - }, - "type": "array" - }, - "additionalMetrics": { - "items": { - "$ref": "#/components/schemas/AdditionalMetric" - }, - "type": "array" - }, - "tableCalculations": { - "items": { - "$ref": "#/components/schemas/TableCalculation" - }, - "type": "array" - }, - "limit": { - "type": "number", - "format": "double" - }, - "sorts": { - "items": { - "$ref": "#/components/schemas/SortField" - }, - "type": "array" - }, - "filters": { - "$ref": "#/components/schemas/Filters" - }, - "metrics": { - "items": { - "$ref": "#/components/schemas/FieldId" - }, - "type": "array" - }, - "dimensions": { - "items": { - "$ref": "#/components/schemas/FieldId" - }, - "type": "array" - }, - "exploreName": { - "type": "string" + "target": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldTarget" + } + ], + "nullable": true } }, "required": [ - "tableCalculations", - "limit", - "sorts", - "filters", - "metrics", - "dimensions", - "exploreName" + "rule", + "color", + "target" ], "type": "object" }, - "ComparisonFormatTypes": { - "enum": [ - "raw", - "percentage" - ], - "type": "string" + "ConditionalFormattingConfig": { + "anyOf": [ + { + "$ref": "#/components/schemas/ConditionalFormattingConfigWithSingleColor" + }, + { + "$ref": "#/components/schemas/ConditionalFormattingConfigWithColorRange" + } + ] }, - "BigNumber": { + "Record_string.ColumnProperties_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "TableChart": { "properties": { - "comparisonLabel": { - "type": "string" - }, - "flipColors": { + "metricsAsRows": { "type": "boolean" }, - "comparisonFormat": { - "$ref": "#/components/schemas/ComparisonFormatTypes" + "conditionalFormattings": { + "items": { + "$ref": "#/components/schemas/ConditionalFormattingConfig" + }, + "type": "array" }, - "showComparison": { + "columns": { + "$ref": "#/components/schemas/Record_string.ColumnProperties_" + }, + "showSubtotals": { "type": "boolean" }, - "showBigNumberLabel": { + "showResultsTotal": { "type": "boolean" }, - "selectedField": { - "type": "string" + "hideRowNumbers": { + "type": "boolean" }, - "style": { - "$ref": "#/components/schemas/CompactOrAlias" + "showTableNames": { + "type": "boolean" }, - "label": { - "type": "string" + "showRowCalculation": { + "type": "boolean" + }, + "showColumnCalculation": { + "type": "boolean" } }, "type": "object" }, - "ChartType.BIG_NUMBER": { + "ChartType.TABLE": { "enum": [ - "big_number" + "table" ], "type": "string" }, - "BigNumberConfig": { + "TableChartConfig": { "properties": { "config": { - "$ref": "#/components/schemas/BigNumber" + "$ref": "#/components/schemas/TableChart" }, "type": { - "$ref": "#/components/schemas/ChartType.BIG_NUMBER" + "$ref": "#/components/schemas/ChartType.TABLE" } }, "required": [ @@ -8025,1175 +11263,1317 @@ ], "type": "object" }, - "Record_string.SeriesMetadata_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" + "ChartConfig": { + "anyOf": [ + { + "$ref": "#/components/schemas/BigNumberConfig" + }, + { + "$ref": "#/components/schemas/CartesianChartConfig" + }, + { + "$ref": "#/components/schemas/CustomVisConfig" + }, + { + "$ref": "#/components/schemas/PieChartConfig" + }, + { + "$ref": "#/components/schemas/FunnelChartConfig" + }, + { + "$ref": "#/components/schemas/TableChartConfig" + } + ] }, - "EchartsLegend": { + "Pick_SavedChart.Exclude_keyofSavedChart.isPrivate-or-access__": { "properties": { - "icon": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "spaceName": { + "type": "string" + }, + "spaceUuid": { + "type": "string" + }, + "projectUuid": { + "type": "string" + }, + "organizationUuid": { + "type": "string" + }, + "pinnedListUuid": { "type": "string", - "enum": [ - "circle", - "rect", - "roundRect", - "triangle", - "diamond", - "pin", - "arrow", - "none" - ] + "nullable": true }, - "align": { + "dashboardUuid": { "type": "string", - "enum": [ - "auto", - "left", - "right" - ] + "nullable": true }, - "height": { + "dashboardName": { + "type": "string", + "nullable": true + }, + "slug": { + "type": "string" + }, + "tableName": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" + }, + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true + }, + "metricQuery": { + "$ref": "#/components/schemas/MetricQuery" + }, + "pivotConfig": { + "properties": { + "columns": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "columns" + ], + "type": "object" + }, + "chartConfig": { + "$ref": "#/components/schemas/ChartConfig" + }, + "tableConfig": { + "properties": { + "columnOrder": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "columnOrder" + ], + "type": "object" + }, + "colorPalette": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name", + "uuid", + "spaceName", + "spaceUuid", + "projectUuid", + "organizationUuid", + "pinnedListUuid", + "dashboardUuid", + "dashboardName", + "slug", + "tableName", + "updatedAt", + "pinnedListOrder", + "metricQuery", + "chartConfig", + "tableConfig", + "colorPalette" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "PromotedChart": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_SavedChart.Exclude_keyofSavedChart.isPrivate-or-access__" + }, + { + "properties": { + "oldUuid": { + "type": "string" + }, + "spaceSlug": { + "type": "string" + } + }, + "required": [ + "oldUuid", + "spaceSlug" + ], + "type": "object" + } + ] + }, + "PromotionAction": { + "enum": [ + "no changes", + "create", + "update", + "delete" + ], + "type": "string" + }, + "PromotedDashboard": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_Dashboard.Exclude_keyofDashboard.isPrivate-or-access__" + }, + { + "properties": { + "spaceSlug": { + "type": "string" + } + }, + "required": [ + "spaceSlug" + ], + "type": "object" + } + ] + }, + "Pick_SpaceSummary.Exclude_keyofSpaceSummary.userAccess__": { + "properties": { + "name": { "type": "string" }, - "width": { + "uuid": { "type": "string" }, - "left": { + "projectUuid": { "type": "string" }, - "bottom": { + "organizationUuid": { "type": "string" }, - "right": { - "type": "string" + "pinnedListUuid": { + "type": "string", + "nullable": true }, - "top": { + "slug": { "type": "string" }, - "orient": { - "type": "string", - "enum": [ - "horizontal", - "vertical" - ] + "isPrivate": { + "type": "boolean" }, - "type": { - "type": "string", - "enum": [ - "plain", - "scroll" - ] + "access": { + "items": { + "type": "string" + }, + "type": "array" }, - "show": { - "type": "boolean" + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true + }, + "chartCount": { + "type": "number", + "format": "double" + }, + "dashboardCount": { + "type": "number", + "format": "double" } }, - "type": "object" + "required": [ + "name", + "uuid", + "projectUuid", + "organizationUuid", + "pinnedListUuid", + "slug", + "isPrivate", + "access", + "pinnedListOrder", + "chartCount", + "dashboardCount" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "EchartsGrid": { + "PromotionChanges": { "properties": { - "height": { - "type": "string" - }, - "width": { - "type": "string" - }, - "left": { - "type": "string" - }, - "bottom": { - "type": "string" - }, - "right": { - "type": "string" + "charts": { + "items": { + "properties": { + "data": { + "$ref": "#/components/schemas/PromotedChart" + }, + "action": { + "$ref": "#/components/schemas/PromotionAction" + } + }, + "required": [ + "data", + "action" + ], + "type": "object" + }, + "type": "array" }, - "top": { - "type": "string" + "dashboards": { + "items": { + "properties": { + "data": { + "$ref": "#/components/schemas/PromotedDashboard" + }, + "action": { + "$ref": "#/components/schemas/PromotionAction" + } + }, + "required": [ + "data", + "action" + ], + "type": "object" + }, + "type": "array" }, - "containLabel": { - "type": "boolean" + "spaces": { + "items": { + "properties": { + "data": { + "$ref": "#/components/schemas/Pick_SpaceSummary.Exclude_keyofSpaceSummary.userAccess__" + }, + "action": { + "$ref": "#/components/schemas/PromotionAction" + } + }, + "required": [ + "data", + "action" + ], + "type": "object" + }, + "type": "array" } }, + "required": [ + "charts", + "dashboards", + "spaces" + ], "type": "object" }, - "MarkLineData": { + "ApiPromotionChangesResponse": { "properties": { - "dynamicValue": { + "results": { + "$ref": "#/components/schemas/PromotionChanges" + }, + "status": { "type": "string", "enum": [ - "average" + "ok" ], "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + }, + "ExploreType": { + "enum": [ + "virtual", + "default" + ], + "type": "string" + }, + "Pick_Explore.SummaryExploreFields_": { + "properties": { + "name": { + "type": "string" }, "label": { - "properties": { - "position": { - "type": "string", - "enum": [ - "start", - "middle", - "end" - ] - }, - "formatter": { - "type": "string" - } - }, - "type": "object" - }, - "lineStyle": { - "properties": { - "color": { - "type": "string" - } - }, - "required": [ - "color" - ], - "type": "object" - }, - "uuid": { "type": "string" }, - "type": { + "groupLabel": { "type": "string" }, - "value": { - "type": "string" + "type": { + "$ref": "#/components/schemas/ExploreType" }, - "name": { + "tags": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "name", + "label", + "tags" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "SummaryExtraFields": { + "properties": { + "databaseName": { "type": "string" }, - "xAxis": { + "schemaName": { "type": "string" }, - "yAxis": { + "description": { "type": "string" } }, "required": [ - "uuid" + "databaseName", + "schemaName" ], "type": "object" }, - "MarkLine": { + "Pick_ExploreError.SummaryExploreErrorFields_": { "properties": { - "label": { - "properties": { - "formatter": { - "type": "string" - } - }, - "type": "object" + "name": { + "type": "string" }, - "lineStyle": { - "properties": { - "type": { - "type": "string" - }, - "width": { - "type": "number", - "format": "double" - }, - "color": { - "type": "string" - } - }, - "required": [ - "type", - "width", - "color" - ], - "type": "object" + "label": { + "type": "string" }, - "symbol": { + "groupLabel": { "type": "string" }, - "data": { + "type": { + "$ref": "#/components/schemas/ExploreType" + }, + "tags": { "items": { - "$ref": "#/components/schemas/MarkLineData" + "type": "string" + }, + "type": "array" + }, + "errors": { + "items": { + "$ref": "#/components/schemas/InlineError" }, "type": "array" } }, "required": [ - "data" - ], - "type": "object" - }, - "CartesianSeriesType": { - "enum": [ - "line", - "bar", - "scatter", - "area" + "name", + "label", + "tags", + "errors" ], - "type": "string" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "PivotValue": { + "Partial_SummaryExtraFields_": { "properties": { - "value": {}, - "field": { + "description": { + "type": "string" + }, + "schemaName": { + "type": "string" + }, + "databaseName": { "type": "string" } }, - "required": [ - "value", - "field" - ], - "type": "object" + "type": "object", + "description": "Make all properties in T optional" }, - "PivotReference": { - "properties": { - "pivotValues": { - "items": { - "$ref": "#/components/schemas/PivotValue" - }, - "type": "array" + "SummaryExplore": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_Explore.SummaryExploreFields_" + }, + { + "$ref": "#/components/schemas/SummaryExtraFields" + } + ] }, - "field": { - "type": "string" + { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_ExploreError.SummaryExploreErrorFields_" + }, + { + "$ref": "#/components/schemas/Partial_SummaryExtraFields_" + } + ] } + ] + }, + "ApiExploresResults": { + "items": { + "$ref": "#/components/schemas/SummaryExplore" }, - "required": [ - "field" + "type": "array" + }, + "SupportedDbtAdapter": { + "enum": [ + "bigquery", + "databricks", + "snowflake", + "redshift", + "postgres", + "trino" ], - "type": "object" + "type": "string" }, - "Series": { + "Record_string.GroupType_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "OrderFieldsByStrategy": { + "enum": [ + "LABEL", + "INDEX" + ], + "type": "string" + }, + "TableBase": { "properties": { - "markLine": { - "$ref": "#/components/schemas/MarkLine" + "defaultTimeDimension": { + "$ref": "#/components/schemas/DefaultTimeDimension" }, - "smooth": { - "type": "boolean" - }, - "showSymbol": { - "type": "boolean" + "groupDetails": { + "$ref": "#/components/schemas/Record_string.GroupType_" }, - "areaStyle": { - "properties": {}, - "type": "object" + "requiredAttributes": { + "$ref": "#/components/schemas/Record_string.string-or-string-Array_" }, "hidden": { "type": "boolean" }, - "label": { - "properties": { - "position": { - "type": "string", - "enum": [ - "left", - "top", - "right", - "bottom", - "inside" - ] - }, - "show": { - "type": "boolean" - } + "requiredFilters": { + "items": { + "$ref": "#/components/schemas/MetricFilterRule" }, - "type": "object" + "type": "array" }, - "yAxisIndex": { - "type": "number", - "format": "double" + "sqlWhere": { + "type": "string" }, - "color": { + "groupLabel": { "type": "string" }, - "name": { + "orderFieldsBy": { + "$ref": "#/components/schemas/OrderFieldsByStrategy" + }, + "sqlTable": { "type": "string" }, - "stackLabel": { - "properties": { - "show": { - "type": "boolean" - } - }, - "type": "object" + "schema": { + "type": "string" }, - "stack": { + "database": { "type": "string" }, - "type": { - "$ref": "#/components/schemas/CartesianSeriesType" + "description": { + "type": "string" }, - "encode": { - "properties": { - "y": { - "type": "string" - }, - "x": { - "type": "string" - }, - "yRef": { - "$ref": "#/components/schemas/PivotReference" - }, - "xRef": { - "$ref": "#/components/schemas/PivotReference" - } - }, - "required": [ - "yRef", - "xRef" - ], - "type": "object" + "originalName": { + "type": "string" + }, + "label": { + "type": "string" + }, + "name": { + "type": "string" } }, "required": [ - "type", - "encode" + "sqlTable", + "schema", + "database", + "label", + "name" ], "type": "object" }, - "Axis": { - "properties": { - "rotate": { - "type": "number", - "format": "double" - }, - "inverse": { - "type": "boolean" - }, - "maxOffset": { - "type": "string" + "Record_string.LineageNodeDependency-Array_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "Record_string.CompiledMetric_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "Record_string.CompiledDimension_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "CompiledTable": { + "allOf": [ + { + "$ref": "#/components/schemas/TableBase" }, - "minOffset": { - "type": "string" + { + "properties": { + "uncompiledSqlWhere": { + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/Source" + }, + "lineageGraph": { + "$ref": "#/components/schemas/Record_string.LineageNodeDependency-Array_" + }, + "metrics": { + "$ref": "#/components/schemas/Record_string.CompiledMetric_" + }, + "dimensions": { + "$ref": "#/components/schemas/Record_string.CompiledDimension_" + } + }, + "required": [ + "lineageGraph", + "metrics", + "dimensions" + ], + "type": "object" + } + ] + }, + "Explore": { + "properties": { + "type": { + "$ref": "#/components/schemas/ExploreType" }, - "max": { + "sqlPath": { "type": "string" }, - "min": { + "ymlPath": { "type": "string" }, - "name": { + "warehouse": { "type": "string" - } - }, - "type": "object" - }, - "Partial_CompleteEChartsConfig_": { - "properties": { - "legend": { - "$ref": "#/components/schemas/EchartsLegend" }, - "grid": { - "$ref": "#/components/schemas/EchartsGrid" + "targetDatabase": { + "$ref": "#/components/schemas/SupportedDbtAdapter" }, - "series": { - "items": { - "$ref": "#/components/schemas/Series" + "tables": { + "properties": {}, + "additionalProperties": { + "$ref": "#/components/schemas/CompiledTable" }, - "type": "array" + "type": "object" }, - "xAxis": { + "joinedTables": { "items": { - "$ref": "#/components/schemas/Axis" + "$ref": "#/components/schemas/CompiledExploreJoin" }, "type": "array" }, - "yAxis": { - "items": { - "$ref": "#/components/schemas/Axis" - }, - "type": "array" - } - }, - "type": "object", - "description": "Make all properties in T optional" - }, - "Partial_CompleteCartesianChartLayout_": { - "properties": { - "xField": { + "baseTable": { "type": "string" }, - "yField": { + "groupLabel": { + "type": "string" + }, + "tags": { "items": { "type": "string" }, "type": "array" }, - "flipAxes": { - "type": "boolean" - }, - "showGridX": { - "type": "boolean" + "label": { + "type": "string" }, - "showGridY": { - "type": "boolean" + "name": { + "type": "string" } }, - "type": "object", - "description": "Make all properties in T optional" + "required": [ + "targetDatabase", + "tables", + "joinedTables", + "baseTable", + "tags", + "label", + "name" + ], + "type": "object" }, - "CartesianChart": { + "ApiCompiledQueryResults": { + "type": "string" + }, + "GitRepo": { "properties": { - "metadata": { - "$ref": "#/components/schemas/Record_string.SeriesMetadata_" + "ownerLogin": { + "type": "string" }, - "eChartsConfig": { - "$ref": "#/components/schemas/Partial_CompleteEChartsConfig_" + "fullName": { + "type": "string" }, - "layout": { - "$ref": "#/components/schemas/Partial_CompleteCartesianChartLayout_" + "name": { + "type": "string" } }, "required": [ - "eChartsConfig", - "layout" + "ownerLogin", + "fullName", + "name" ], "type": "object" }, - "ChartType.CARTESIAN": { - "enum": [ - "cartesian" + "GitIntegrationConfiguration": { + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": [ + "enabled" ], - "type": "string" + "type": "object" }, - "CartesianChartConfig": { + "PullRequestCreated": { "properties": { - "config": { - "$ref": "#/components/schemas/CartesianChart" + "prUrl": { + "type": "string" }, - "type": { - "$ref": "#/components/schemas/ChartType.CARTESIAN" + "prTitle": { + "type": "string" } }, "required": [ - "type" + "prUrl", + "prTitle" ], "type": "object" }, - "CustomVis": { + "ApiGdriveAccessTokenResponse": { "properties": { - "spec": { - "additionalProperties": true, - "type": "object" + "results": { + "type": "string" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false } }, + "required": [ + "results", + "status" + ], "type": "object" }, - "ChartType.CUSTOM": { - "enum": [ - "custom" - ], - "type": "string" + "CustomLabel": { + "properties": {}, + "additionalProperties": { + "type": "string" + }, + "type": "object" }, - "CustomVisConfig": { + "FilterGroupResponse": { + "anyOf": [ + { + "properties": { + "or": { + "items": {}, + "type": "array" + }, + "id": { + "type": "string" + } + }, + "required": [ + "or", + "id" + ], + "type": "object" + }, + { + "properties": { + "and": { + "items": {}, + "type": "array" + }, + "id": { + "type": "string" + } + }, + "required": [ + "and", + "id" + ], + "type": "object" + } + ] + }, + "FiltersResponse": { "properties": { - "config": { - "$ref": "#/components/schemas/CustomVis" + "tableCalculations": { + "$ref": "#/components/schemas/FilterGroupResponse" + }, + "metrics": { + "$ref": "#/components/schemas/FilterGroupResponse" + }, + "dimensions": { + "$ref": "#/components/schemas/FilterGroupResponse" + } + }, + "type": "object" + }, + "MetricQueryResponse": { + "properties": { + "metadata": { + "properties": { + "hasADateDimension": { + "$ref": "#/components/schemas/Pick_CompiledDimension.label-or-name_" + } + }, + "required": [ + "hasADateDimension" + ], + "type": "object" + }, + "customDimensions": { + "items": { + "$ref": "#/components/schemas/CustomDimension" + }, + "type": "array" + }, + "additionalMetrics": { + "items": { + "$ref": "#/components/schemas/AdditionalMetric" + }, + "type": "array" + }, + "tableCalculations": { + "items": { + "$ref": "#/components/schemas/TableCalculation" + }, + "type": "array" + }, + "limit": { + "type": "number", + "format": "double" + }, + "sorts": { + "items": { + "$ref": "#/components/schemas/SortField" + }, + "type": "array" + }, + "filters": { + "$ref": "#/components/schemas/FiltersResponse" }, - "type": { - "$ref": "#/components/schemas/ChartType.CUSTOM" + "metrics": { + "items": { + "$ref": "#/components/schemas/FieldId" + }, + "type": "array" + }, + "dimensions": { + "items": { + "$ref": "#/components/schemas/FieldId" + }, + "type": "array" + }, + "exploreName": { + "type": "string" } }, "required": [ - "type" + "tableCalculations", + "limit", + "sorts", + "filters", + "metrics", + "dimensions", + "exploreName" ], "type": "object" }, - "PieChartLegendPosition": { - "type": "string", - "enum": [ - "horizontal", - "vertical" - ], - "nullable": false - }, - "Record_string.Partial_PieChartValueOptions__": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" - }, - "Record_string.string_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" - }, - "PieChartValueLabel": { - "type": "string", - "enum": [ - "hidden", - "inside", - "outside" - ], - "nullable": false - }, - "PieChart": { + "UploadMetricGsheet": { "properties": { - "metadata": { - "$ref": "#/components/schemas/Record_string.SeriesMetadata_" - }, - "legendPosition": { - "$ref": "#/components/schemas/PieChartLegendPosition" - }, - "showLegend": { - "type": "boolean" - }, - "groupSortOverrides": { + "hiddenFields": { "items": { "type": "string" }, "type": "array" }, - "groupValueOptionOverrides": { - "$ref": "#/components/schemas/Record_string.Partial_PieChartValueOptions__" - }, - "groupColorOverrides": { - "$ref": "#/components/schemas/Record_string.string_" - }, - "groupLabelOverrides": { - "$ref": "#/components/schemas/Record_string.string_" + "customLabels": { + "$ref": "#/components/schemas/CustomLabel" }, - "showPercentage": { - "type": "boolean" + "columnOrder": { + "items": { + "type": "string" + }, + "type": "array" }, - "showValue": { + "showTableNames": { "type": "boolean" }, - "valueLabel": { - "$ref": "#/components/schemas/PieChartValueLabel" - }, - "isDonut": { - "type": "boolean" + "metricQuery": { + "$ref": "#/components/schemas/MetricQueryResponse" }, - "metricId": { + "exploreId": { "type": "string" }, - "groupFieldIds": { - "items": { - "type": "string" - }, - "type": "array" + "projectUuid": { + "type": "string" } }, - "type": "object" - }, - "ChartType.PIE": { - "enum": [ - "pie" + "required": [ + "columnOrder", + "showTableNames", + "metricQuery", + "exploreId", + "projectUuid" ], - "type": "string" + "type": "object" }, - "PieChartConfig": { + "ApiJobScheduledResponse": { "properties": { - "config": { - "$ref": "#/components/schemas/PieChart" + "results": { + "properties": { + "jobId": { + "type": "string" + } + }, + "required": [ + "jobId" + ], + "type": "object" }, - "type": { - "$ref": "#/components/schemas/ChartType.PIE" + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false } }, "required": [ - "type" + "results", + "status" ], "type": "object" }, - "FunnelChartLegendPosition": { - "enum": [ - "horizontal", - "vertical" - ], - "type": "string" - }, - "FunnelChartLabelPosition": { - "enum": [ - "inside", - "left", - "right", - "hidden" - ], - "type": "string" - }, - "FunnelChartDataInput": { - "enum": [ - "row", - "column" - ], - "type": "string" - }, - "FunnelChart": { + "Group": { "properties": { - "legendPosition": { - "$ref": "#/components/schemas/FunnelChartLegendPosition" - }, - "showLegend": { - "type": "boolean" - }, - "labels": { - "properties": { - "showPercentage": { - "type": "boolean" - }, - "showValue": { - "type": "boolean" - }, - "position": { - "$ref": "#/components/schemas/FunnelChartLabelPosition" - } - }, - "type": "object" + "organizationUuid": { + "type": "string", + "description": "The UUID of the organization that the group belongs to" }, - "colorOverrides": { - "$ref": "#/components/schemas/Record_string.string_" + "updatedByUserUuid": { + "type": "string", + "nullable": true, + "description": "The UUID of the user that last updated the group" }, - "labelOverrides": { - "$ref": "#/components/schemas/Record_string.string_" + "updatedAt": { + "type": "string", + "format": "date-time", + "description": "The time that the group was last updated" }, - "metadata": { - "$ref": "#/components/schemas/Record_string.SeriesMetadata_" + "createdByUserUuid": { + "type": "string", + "nullable": true, + "description": "The UUID of the user that created the group" }, - "fieldId": { - "type": "string" + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The time that the group was created" }, - "dataInput": { - "$ref": "#/components/schemas/FunnelChartDataInput" - } - }, - "type": "object" - }, - "ChartType.FUNNEL": { - "enum": [ - "funnel" - ], - "type": "string" - }, - "FunnelChartConfig": { - "properties": { - "config": { - "$ref": "#/components/schemas/FunnelChart" + "name": { + "type": "string", + "description": "A friendly name for the group" }, - "type": { - "$ref": "#/components/schemas/ChartType.FUNNEL" + "uuid": { + "type": "string", + "description": "The group's UUID" } }, "required": [ - "type" + "organizationUuid", + "updatedByUserUuid", + "updatedAt", + "createdByUserUuid", + "createdAt", + "name", + "uuid" ], "type": "object" }, - "ConditionalRule_ConditionalOperator.number_": { + "GroupMember": { "properties": { - "values": { - "items": { - "type": "number", - "format": "double" - }, - "type": "array" + "lastName": { + "type": "string", + "description": "The user's last name" }, - "operator": { - "$ref": "#/components/schemas/ConditionalOperator" + "firstName": { + "type": "string", + "description": "The user's first name" }, - "id": { - "type": "string" + "email": { + "type": "string", + "description": "Primary email address for the user" + }, + "userUuid": { + "type": "string", + "description": "Unique id for the user", + "format": "uuid" } }, "required": [ - "operator", - "id" + "lastName", + "firstName", + "email", + "userUuid" ], - "type": "object" + "type": "object", + "description": "A summary for a Lightdash user within a group" }, - "ConditionalFormattingWithConditionalOperator": { + "GroupWithMembers": { "allOf": [ { - "$ref": "#/components/schemas/ConditionalRule_ConditionalOperator.number_" + "$ref": "#/components/schemas/Group" }, { "properties": { - "values": { + "memberUuids": { "items": { - "type": "number", - "format": "double" + "type": "string" }, "type": "array" + }, + "members": { + "items": { + "$ref": "#/components/schemas/GroupMember" + }, + "type": "array", + "description": "A list of the group's members." } }, "required": [ - "values" + "memberUuids", + "members" ], "type": "object" } - ] + ], + "description": "Details for a group including a list of the group's members." }, - "ConditionalFormattingConfigWithSingleColor": { + "ApiGroupResponse": { "properties": { - "rules": { + "results": { + "anyOf": [ + { + "$ref": "#/components/schemas/Group" + }, + { + "$ref": "#/components/schemas/GroupWithMembers" + } + ] + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + }, + "Pick_GroupMember.userUuid_": { + "properties": { + "userUuid": { + "type": "string", + "description": "Unique id for the user", + "format": "uuid" + } + }, + "required": [ + "userUuid" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "UpdateGroupWithMembers": { + "properties": { + "members": { "items": { - "$ref": "#/components/schemas/ConditionalFormattingWithConditionalOperator" + "$ref": "#/components/schemas/Pick_GroupMember.userUuid_" }, "type": "array" }, - "color": { + "name": { "type": "string" + } + }, + "type": "object" + }, + "ApiGroupMembersResponse": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/GroupMember" + }, + "type": "array" }, - "target": { - "allOf": [ - { - "$ref": "#/components/schemas/FieldTarget" - } + "status": { + "type": "string", + "enum": [ + "ok" ], - "nullable": true + "nullable": false } }, "required": [ - "rules", - "color", - "target" + "results", + "status" ], "type": "object" }, - "ConditionalFormattingWithRange": { + "ProjectMemberRole": { + "enum": [ + "viewer", + "interactive_viewer", + "editor", + "developer", + "admin" + ], + "type": "string" + }, + "Pick_CreateDBProjectGroupAccess.role_": { "properties": { - "max": { - "type": "number", - "format": "double" - }, - "min": { - "type": "number", - "format": "double" + "role": { + "$ref": "#/components/schemas/ProjectMemberRole" } }, "required": [ - "max", - "min" + "role" ], - "type": "object" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "ConditionalFormattingConfigWithColorRange": { + "ProjectGroupAccess": { "properties": { - "rule": { - "$ref": "#/components/schemas/ConditionalFormattingWithRange" + "role": { + "$ref": "#/components/schemas/ProjectMemberRole" }, - "color": { - "properties": { - "steps": { - "type": "number", - "enum": [ - 5 - ], - "nullable": false - }, - "end": { - "type": "string" - }, - "start": { - "type": "string" - } - }, - "required": [ - "steps", - "end", - "start" - ], - "type": "object" + "groupUuid": { + "type": "string" }, - "target": { - "allOf": [ - { - "$ref": "#/components/schemas/FieldTarget" - } - ], - "nullable": true + "projectUuid": { + "type": "string" } }, "required": [ - "rule", - "color", - "target" + "role", + "groupUuid", + "projectUuid" ], "type": "object" }, - "ConditionalFormattingConfig": { - "anyOf": [ - { - "$ref": "#/components/schemas/ConditionalFormattingConfigWithSingleColor" + "ApiCreateProjectGroupAccess": { + "properties": { + "results": { + "$ref": "#/components/schemas/ProjectGroupAccess" }, - { - "$ref": "#/components/schemas/ConditionalFormattingConfigWithColorRange" + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false } - ] + }, + "required": [ + "results", + "status" + ], + "type": "object" }, - "Record_string.ColumnProperties_": { - "properties": {}, + "Pick_DBProjectGroupAccess.role_": { + "properties": { + "role": { + "$ref": "#/components/schemas/ProjectMemberRole" + } + }, + "required": [ + "role" + ], "type": "object", - "description": "Construct a type with a set of properties K of type T" + "description": "From T, pick a set of properties whose keys are in the union K" }, - "TableChart": { + "ApiUpdateProjectGroupAccess": { "properties": { - "metricsAsRows": { - "type": "boolean" - }, - "conditionalFormattings": { - "items": { - "$ref": "#/components/schemas/ConditionalFormattingConfig" - }, - "type": "array" - }, - "columns": { - "$ref": "#/components/schemas/Record_string.ColumnProperties_" - }, - "showSubtotals": { - "type": "boolean" - }, - "showResultsTotal": { - "type": "boolean" - }, - "hideRowNumbers": { - "type": "boolean" - }, - "showTableNames": { - "type": "boolean" - }, - "showRowCalculation": { - "type": "boolean" + "results": { + "$ref": "#/components/schemas/ProjectGroupAccess" }, - "showColumnCalculation": { - "type": "boolean" + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false } }, + "required": [ + "results", + "status" + ], "type": "object" }, - "ChartType.TABLE": { + "MetricExplorerComparison.NONE": { "enum": [ - "table" + "none" ], "type": "string" }, - "TableChartConfig": { - "properties": { - "config": { - "$ref": "#/components/schemas/TableChart" - }, - "type": { - "$ref": "#/components/schemas/ChartType.TABLE" - } - }, - "required": [ - "type" + "MetricExplorerComparison.PREVIOUS_PERIOD": { + "enum": [ + "previous_period" ], - "type": "object" + "type": "string" }, - "ChartConfig": { + "MetricExplorerComparison.DIFFERENT_METRIC": { + "enum": [ + "different_metric" + ], + "type": "string" + }, + "MetricExplorerComparisonType": { "anyOf": [ { - "$ref": "#/components/schemas/BigNumberConfig" - }, - { - "$ref": "#/components/schemas/CartesianChartConfig" - }, - { - "$ref": "#/components/schemas/CustomVisConfig" - }, - { - "$ref": "#/components/schemas/PieChartConfig" - }, - { - "$ref": "#/components/schemas/FunnelChartConfig" - }, - { - "$ref": "#/components/schemas/TableChartConfig" - } - ] - }, - "Pick_SavedChart.Exclude_keyofSavedChart.isPrivate-or-access__": { - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "uuid": { - "type": "string" - }, - "spaceName": { - "type": "string" - }, - "spaceUuid": { - "type": "string" - }, - "projectUuid": { - "type": "string" - }, - "organizationUuid": { - "type": "string" - }, - "pinnedListUuid": { - "type": "string", - "nullable": true - }, - "dashboardUuid": { - "type": "string", - "nullable": true - }, - "dashboardName": { - "type": "string", - "nullable": true - }, - "slug": { - "type": "string" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "updatedByUser": { - "$ref": "#/components/schemas/UpdatedByUser" - }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true - }, - "tableName": { - "type": "string" - }, - "metricQuery": { - "$ref": "#/components/schemas/MetricQuery" - }, - "pivotConfig": { "properties": { - "columns": { - "items": { - "type": "string" - }, - "type": "array" + "type": { + "$ref": "#/components/schemas/MetricExplorerComparison.NONE" } }, "required": [ - "columns" + "type" ], "type": "object" }, - "chartConfig": { - "$ref": "#/components/schemas/ChartConfig" - }, - "tableConfig": { + { "properties": { - "columnOrder": { - "items": { - "type": "string" - }, - "type": "array" + "type": { + "$ref": "#/components/schemas/MetricExplorerComparison.PREVIOUS_PERIOD" } }, "required": [ - "columnOrder" + "type" ], "type": "object" }, - "colorPalette": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "name", - "uuid", - "spaceName", - "spaceUuid", - "projectUuid", - "organizationUuid", - "pinnedListUuid", - "dashboardUuid", - "dashboardName", - "slug", - "updatedAt", - "pinnedListOrder", - "tableName", - "metricQuery", - "chartConfig", - "tableConfig", - "colorPalette" - ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "PromotedChart": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_SavedChart.Exclude_keyofSavedChart.isPrivate-or-access__" - }, { "properties": { - "oldUuid": { + "metricName": { "type": "string" }, - "spaceSlug": { + "metricTable": { "type": "string" + }, + "type": { + "$ref": "#/components/schemas/MetricExplorerComparison.DIFFERENT_METRIC" } }, "required": [ - "oldUuid", - "spaceSlug" + "metricName", + "metricTable", + "type" ], "type": "object" } ] }, - "PromotionAction": { - "enum": [ - "no changes", - "create", - "update", - "delete" - ], - "type": "string" - }, - "PromotedDashboard": { + "TimeDimensionConfig": { "allOf": [ { - "$ref": "#/components/schemas/Pick_Dashboard.Exclude_keyofDashboard.isPrivate-or-access__" + "$ref": "#/components/schemas/DefaultTimeDimension" }, { "properties": { - "spaceSlug": { + "table": { "type": "string" } }, "required": [ - "spaceSlug" + "table" ], "type": "object" } ] }, - "Pick_SpaceSummary.Exclude_keyofSpaceSummary.userAccess__": { - "properties": { - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - }, - "projectUuid": { - "type": "string" - }, - "organizationUuid": { - "type": "string" - }, - "pinnedListUuid": { - "type": "string", - "nullable": true - }, - "slug": { - "type": "string" - }, - "isPrivate": { - "type": "boolean" - }, - "access": { - "items": { - "type": "string" - }, - "type": "array" - }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true - }, - "chartCount": { - "type": "number", - "format": "double" - }, - "dashboardCount": { - "type": "number", - "format": "double" - } - }, - "required": [ - "name", - "uuid", - "projectUuid", - "organizationUuid", - "pinnedListUuid", - "slug", - "isPrivate", - "access", - "pinnedListOrder", - "chartCount", - "dashboardCount" - ], + "Record_string.Field-or-TableCalculation-or-CustomDimension-or-Metric_": { + "properties": {}, "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "description": "Construct a type with a set of properties K of type T" }, - "PromotionChanges": { - "properties": { - "charts": { - "items": { - "properties": { - "data": { - "$ref": "#/components/schemas/PromotedChart" - }, - "action": { - "$ref": "#/components/schemas/PromotionAction" - } - }, - "required": [ - "data", - "action" - ], - "type": "object" - }, - "type": "array" + "Record_string._value-ResultValue--__": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "MetricsExplorerQueryResults": { + "properties": { + "fields": { + "$ref": "#/components/schemas/Record_string.Field-or-TableCalculation-or-CustomDimension-or-Metric_" }, - "dashboards": { + "comparisonRows": { "items": { - "properties": { - "data": { - "$ref": "#/components/schemas/PromotedDashboard" - }, - "action": { - "$ref": "#/components/schemas/PromotionAction" - } - }, - "required": [ - "data", - "action" - ], - "type": "object" + "$ref": "#/components/schemas/Record_string._value-ResultValue--__" }, "type": "array" }, - "spaces": { + "rows": { "items": { - "properties": { - "data": { - "$ref": "#/components/schemas/Pick_SpaceSummary.Exclude_keyofSpaceSummary.userAccess__" - }, - "action": { - "$ref": "#/components/schemas/PromotionAction" - } - }, - "required": [ - "data", - "action" - ], - "type": "object" + "$ref": "#/components/schemas/Record_string._value-ResultValue--__" }, "type": "array" + }, + "metric": { + "$ref": "#/components/schemas/MetricWithAssociatedTimeDimension" } }, "required": [ - "charts", - "dashboards", - "spaces" + "fields", + "rows", + "metric" ], "type": "object" }, - "ApiPromotionChangesResponse": { + "ApiMetricsExplorerQueryResults": { "properties": { "results": { - "$ref": "#/components/schemas/PromotionChanges" + "$ref": "#/components/schemas/MetricsExplorerQueryResults" }, "status": { "type": "string", @@ -9209,443 +12589,409 @@ ], "type": "object" }, - "Pick_Explore.SummaryExploreFields_": { + "ApiNotificationResourceType": { + "enum": [ + "dashboardComments" + ], + "type": "string" + }, + "NotificationBase": { "properties": { - "name": { + "url": { "type": "string" }, - "label": { + "message": { "type": "string" }, - "groupLabel": { + "resourceUuid": { "type": "string" }, - "tags": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "name", - "label", - "tags" - ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "SummaryExtraFields": { - "properties": { - "databaseName": { - "type": "string" + "viewed": { + "type": "boolean" }, - "schemaName": { - "type": "string" + "createdAt": { + "type": "string", + "format": "date-time" }, - "description": { + "notificationId": { "type": "string" } }, "required": [ - "databaseName", - "schemaName" + "viewed", + "createdAt", + "notificationId" ], "type": "object" }, - "Pick_ExploreError.SummaryExploreErrorFields_": { + "NotificationDashboardTileCommentMetadata": { "properties": { - "name": { + "dashboardUuid": { "type": "string" }, - "label": { + "dashboardName": { "type": "string" }, - "groupLabel": { + "dashboardTileUuid": { "type": "string" }, - "tags": { - "items": { - "type": "string" - }, - "type": "array" - }, - "errors": { - "items": { - "$ref": "#/components/schemas/InlineError" - }, - "type": "array" + "dashboardTileName": { + "type": "string" } }, "required": [ - "name", - "label", - "tags", - "errors" + "dashboardUuid", + "dashboardName", + "dashboardTileUuid", + "dashboardTileName" ], "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "additionalProperties": true }, - "Partial_SummaryExtraFields_": { - "properties": { - "description": { - "type": "string" - }, - "schemaName": { - "type": "string" - }, - "databaseName": { - "type": "string" - } - }, - "type": "object", - "description": "Make all properties in T optional" + "ApiNotificationResourceType.DashboardComments": { + "enum": [ + "dashboardComments" + ], + "type": "string" }, - "SummaryExplore": { - "anyOf": [ + "NotificationDashboardComment": { + "allOf": [ { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_Explore.SummaryExploreFields_" - }, - { - "$ref": "#/components/schemas/SummaryExtraFields" - } - ] + "$ref": "#/components/schemas/NotificationBase" }, { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_ExploreError.SummaryExploreErrorFields_" + "properties": { + "metadata": { + "$ref": "#/components/schemas/NotificationDashboardTileCommentMetadata" }, - { - "$ref": "#/components/schemas/Partial_SummaryExtraFields_" + "resourceType": { + "$ref": "#/components/schemas/ApiNotificationResourceType.DashboardComments" } - ] + }, + "required": [ + "resourceType" + ], + "type": "object" } ] }, - "ApiExploresResults": { + "ApiNotificationsResults": { "items": { - "$ref": "#/components/schemas/SummaryExplore" - }, - "type": "array" - }, - "ApiSuccessEmpty": { - "properties": { - "results": {}, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "status" - ], - "type": "object" - }, - "SupportedDbtAdapter": { - "enum": [ - "bigquery", - "databricks", - "snowflake", - "redshift", - "postgres", - "trino" - ], - "type": "string" - }, - "Record_string.GroupType_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" - }, - "OrderFieldsByStrategy": { - "enum": [ - "LABEL", - "INDEX" - ], - "type": "string" - }, - "TableBase": { - "properties": { - "groupDetails": { - "$ref": "#/components/schemas/Record_string.GroupType_" - }, - "requiredAttributes": { - "$ref": "#/components/schemas/Record_string.string-or-string-Array_" - }, - "hidden": { - "type": "boolean" - }, - "requiredFilters": { - "items": { - "$ref": "#/components/schemas/MetricFilterRule" - }, - "type": "array" - }, - "sqlWhere": { - "type": "string" - }, - "groupLabel": { - "type": "string" - }, - "orderFieldsBy": { - "$ref": "#/components/schemas/OrderFieldsByStrategy" - }, - "sqlTable": { - "type": "string" - }, - "schema": { - "type": "string" - }, - "database": { - "type": "string" - }, - "description": { - "type": "string" - }, - "originalName": { - "type": "string" - }, - "label": { - "type": "string" + "$ref": "#/components/schemas/NotificationDashboardComment" + }, + "type": "array" + }, + "ApiGetNotifications": { + "properties": { + "results": { + "$ref": "#/components/schemas/ApiNotificationsResults" }, - "name": { - "type": "string" + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false } }, "required": [ - "sqlTable", - "schema", - "database", - "label", - "name" + "results", + "status" ], "type": "object" }, - "SourcePosition": { + "Pick_Notification.viewed_": { "properties": { - "character": { - "type": "number", - "format": "double" - }, - "line": { - "type": "number", - "format": "double" + "viewed": { + "type": "boolean" } }, "required": [ - "character", - "line" + "viewed" ], - "type": "object" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "Source": { + "Organization": { "properties": { - "content": { - "type": "string" + "defaultProjectUuid": { + "type": "string", + "description": "The project a user sees when they first log in to the organization" }, - "highlight": { - "properties": { - "end": { - "$ref": "#/components/schemas/SourcePosition" - }, - "start": { - "$ref": "#/components/schemas/SourcePosition" - } - }, - "required": [ - "end", - "start" - ], - "type": "object" + "needsProject": { + "type": "boolean", + "description": "The organization needs a project if it doesn't have at least one project." }, - "range": { - "properties": { - "end": { - "$ref": "#/components/schemas/SourcePosition" - }, - "start": { - "$ref": "#/components/schemas/SourcePosition" - } + "chartColors": { + "items": { + "type": "string" }, - "required": [ - "end", - "start" - ], - "type": "object" + "type": "array", + "description": "The default color palette for all projects in the organization" }, - "path": { - "type": "string" + "name": { + "type": "string", + "description": "The name of the organization" + }, + "organizationUuid": { + "type": "string", + "description": "The unique identifier of the organization", + "format": "uuid" } }, "required": [ - "content", - "range", - "path" + "name", + "organizationUuid" ], - "type": "object" - }, - "Record_string.LineageNodeDependency-Array_": { - "properties": {}, "type": "object", - "description": "Construct a type with a set of properties K of type T" + "description": "Details of a user's Organization" }, - "Record_string.CompiledMetric_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" + "ApiOrganization": { + "properties": { + "results": { + "$ref": "#/components/schemas/Organization" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" }, - "Record_string.CompiledDimension_": { - "properties": {}, + "Pick_Organization.name_": { + "properties": { + "name": { + "type": "string", + "description": "The name of the organization" + } + }, + "required": [ + "name" + ], "type": "object", - "description": "Construct a type with a set of properties K of type T" + "description": "From T, pick a set of properties whose keys are in the union K" }, - "CompiledTable": { - "allOf": [ - { - "$ref": "#/components/schemas/TableBase" + "Partial_Omit_Organization.organizationUuid-or-needsProject__": { + "properties": { + "name": { + "type": "string", + "description": "The name of the organization" }, - { - "properties": { - "uncompiledSqlWhere": { - "type": "string" - }, - "source": { - "$ref": "#/components/schemas/Source" - }, - "lineageGraph": { - "$ref": "#/components/schemas/Record_string.LineageNodeDependency-Array_" - }, - "metrics": { - "$ref": "#/components/schemas/Record_string.CompiledMetric_" - }, - "dimensions": { - "$ref": "#/components/schemas/Record_string.CompiledDimension_" - } + "chartColors": { + "items": { + "type": "string" }, - "required": [ - "lineageGraph", - "metrics", - "dimensions" - ], - "type": "object" + "type": "array", + "description": "The default color palette for all projects in the organization" + }, + "defaultProjectUuid": { + "type": "string", + "description": "The project a user sees when they first log in to the organization" } - ] + }, + "type": "object", + "description": "Make all properties in T optional" }, - "Explore": { + "WarehouseTypes": { + "enum": [ + "bigquery", + "postgres", + "redshift", + "snowflake", + "databricks", + "trino" + ], + "type": "string" + }, + "ProjectType": { + "enum": [ + "DEFAULT", + "PREVIEW" + ], + "type": "string" + }, + "OrganizationProject": { "properties": { - "sqlPath": { - "type": "string" - }, - "ymlPath": { - "type": "string" - }, - "warehouse": { - "type": "string" + "requireUserCredentials": { + "type": "boolean" }, - "targetDatabase": { - "$ref": "#/components/schemas/SupportedDbtAdapter" + "warehouseType": { + "$ref": "#/components/schemas/WarehouseTypes" }, - "tables": { - "properties": {}, - "additionalProperties": { - "$ref": "#/components/schemas/CompiledTable" - }, - "type": "object" + "upstreamProjectUuid": { + "type": "string", + "nullable": true }, - "joinedTables": { - "items": { - "$ref": "#/components/schemas/CompiledExploreJoin" - }, - "type": "array" + "createdByUserUuid": { + "type": "string", + "nullable": true }, - "baseTable": { - "type": "string" + "type": { + "$ref": "#/components/schemas/ProjectType" }, - "groupLabel": { + "name": { "type": "string" }, - "tags": { + "projectUuid": { + "type": "string", + "description": "The unique identifier of the project", + "format": "uuid" + } + }, + "required": [ + "requireUserCredentials", + "warehouseType", + "upstreamProjectUuid", + "createdByUserUuid", + "type", + "name", + "projectUuid" + ], + "type": "object", + "description": "Summary of a project under an organization" + }, + "ApiOrganizationProjects": { + "properties": { + "results": { "items": { - "type": "string" + "$ref": "#/components/schemas/OrganizationProject" }, "type": "array" }, - "label": { - "type": "string" - }, - "name": { - "type": "string" + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false } }, "required": [ - "targetDatabase", - "tables", - "joinedTables", - "baseTable", - "tags", - "label", - "name" + "results", + "status" ], - "type": "object" + "type": "object", + "description": "List of projects in the current organization" }, - "ApiCompiledQueryResults": { + "OrganizationMemberRole": { + "enum": [ + "member", + "viewer", + "interactive_viewer", + "editor", + "developer", + "admin" + ], "type": "string" }, - "GitRepo": { + "OrganizationMemberProfile": { "properties": { - "ownerLogin": { + "isPending": { + "type": "boolean", + "description": "Whether the user doesn't have an authentication method (password or openId)" + }, + "isInviteExpired": { + "type": "boolean", + "description": "Whether the user's invite to the organization has expired" + }, + "isActive": { + "type": "boolean", + "description": "Whether the user can login" + }, + "role": { + "$ref": "#/components/schemas/OrganizationMemberRole", + "description": "The role of the user in the organization" + }, + "organizationUuid": { + "type": "string", + "description": "Unique identifier for the organization the user is a member of" + }, + "email": { "type": "string" }, - "fullName": { + "lastName": { "type": "string" }, - "name": { + "firstName": { "type": "string" + }, + "userUpdatedAt": { + "type": "string", + "format": "date-time" + }, + "userCreatedAt": { + "type": "string", + "format": "date-time" + }, + "userUuid": { + "type": "string", + "description": "Unique identifier for the user", + "format": "uuid" } }, "required": [ - "ownerLogin", - "fullName", - "name" - ], - "type": "object" - }, - "GitIntegrationConfiguration": { - "properties": { - "enabled": { - "type": "boolean" - } - }, - "required": [ - "enabled" + "isActive", + "role", + "organizationUuid", + "email", + "lastName", + "firstName", + "userUpdatedAt", + "userCreatedAt", + "userUuid" ], - "type": "object" + "type": "object", + "description": "Profile for a user's membership in an organization" }, - "PullRequestCreated": { + "KnexPaginatedData_OrganizationMemberProfile-Array_": { "properties": { - "prUrl": { - "type": "string" + "pagination": { + "allOf": [ + { + "$ref": "#/components/schemas/KnexPaginateArgs" + }, + { + "properties": { + "totalResults": { + "type": "number", + "format": "double" + }, + "totalPageCount": { + "type": "number", + "format": "double" + } + }, + "required": [ + "totalResults", + "totalPageCount" + ], + "type": "object" + } + ] }, - "prTitle": { - "type": "string" + "data": { + "items": { + "$ref": "#/components/schemas/OrganizationMemberProfile" + }, + "type": "array" } }, "required": [ - "prUrl", - "prTitle" + "data" ], "type": "object" }, - "ApiGdriveAccessTokenResponse": { + "ApiOrganizationMemberProfiles": { "properties": { "results": { - "type": "string" + "$ref": "#/components/schemas/KnexPaginatedData_OrganizationMemberProfile-Array_" }, "status": { "type": "string", @@ -9661,185 +13007,158 @@ ], "type": "object" }, - "CustomLabel": { - "properties": {}, - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "FilterGroupResponse": { - "anyOf": [ - { - "properties": { - "or": { - "items": {}, - "type": "array" - }, - "id": { - "type": "string" - } - }, - "required": [ - "or", - "id" - ], - "type": "object" - }, - { - "properties": { - "and": { - "items": {}, - "type": "array" - }, - "id": { - "type": "string" - } - }, - "required": [ - "and", - "id" - ], - "type": "object" - } - ] - }, - "FiltersResponse": { - "properties": { - "tableCalculations": { - "$ref": "#/components/schemas/FilterGroupResponse" - }, - "metrics": { - "$ref": "#/components/schemas/FilterGroupResponse" - }, - "dimensions": { - "$ref": "#/components/schemas/FilterGroupResponse" - } - }, - "type": "object" + "UUID": { + "type": "string", + "format": "uuid", + "description": "Stringified UUIDv4.\nSee [RFC 4112](https://tools.ietf.org/html/rfc4122)", + "pattern": "[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}" }, - "MetricQueryResponse": { - "properties": { - "metadata": { - "properties": { - "hasADateDimension": { - "$ref": "#/components/schemas/Pick_CompiledDimension.label-or-name_" - } - }, - "required": [ - "hasADateDimension" - ], - "type": "object" - }, - "customDimensions": { - "items": { - "$ref": "#/components/schemas/CustomDimension" - }, - "type": "array" - }, - "additionalMetrics": { - "items": { - "$ref": "#/components/schemas/AdditionalMetric" - }, - "type": "array" - }, - "tableCalculations": { - "items": { - "$ref": "#/components/schemas/TableCalculation" - }, - "type": "array" - }, - "limit": { - "type": "number", - "format": "double" - }, - "sorts": { - "items": { - "$ref": "#/components/schemas/SortField" - }, - "type": "array" - }, - "filters": { - "$ref": "#/components/schemas/FiltersResponse" - }, - "metrics": { - "items": { - "$ref": "#/components/schemas/FieldId" - }, - "type": "array" - }, - "dimensions": { - "items": { - "$ref": "#/components/schemas/FieldId" - }, - "type": "array" + "ApiOrganizationMemberProfile": { + "properties": { + "results": { + "$ref": "#/components/schemas/OrganizationMemberProfile" }, - "exploreName": { - "type": "string" + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false } }, "required": [ - "tableCalculations", - "limit", - "sorts", - "filters", - "metrics", - "dimensions", - "exploreName" + "results", + "status" ], "type": "object" }, - "UploadMetricGsheet": { + "OrganizationMemberProfileUpdate": { "properties": { - "hiddenFields": { + "role": { + "$ref": "#/components/schemas/OrganizationMemberRole" + } + }, + "required": [ + "role" + ], + "type": "object" + }, + "ProjectMemberRole.EDITOR": { + "enum": [ + "editor" + ], + "type": "string" + }, + "ProjectMemberRole.INTERACTIVE_VIEWER": { + "enum": [ + "interactive_viewer" + ], + "type": "string" + }, + "ProjectMemberRole.VIEWER": { + "enum": [ + "viewer" + ], + "type": "string" + }, + "AllowedEmailDomainProjectsRole": { + "anyOf": [ + { + "$ref": "#/components/schemas/ProjectMemberRole.EDITOR" + }, + { + "$ref": "#/components/schemas/ProjectMemberRole.INTERACTIVE_VIEWER" + }, + { + "$ref": "#/components/schemas/ProjectMemberRole.VIEWER" + } + ] + }, + "OrganizationMemberRole.EDITOR": { + "enum": [ + "editor" + ], + "type": "string" + }, + "OrganizationMemberRole.INTERACTIVE_VIEWER": { + "enum": [ + "interactive_viewer" + ], + "type": "string" + }, + "OrganizationMemberRole.VIEWER": { + "enum": [ + "viewer" + ], + "type": "string" + }, + "OrganizationMemberRole.MEMBER": { + "enum": [ + "member" + ], + "type": "string" + }, + "AllowedEmailDomainsRole": { + "anyOf": [ + { + "$ref": "#/components/schemas/OrganizationMemberRole.EDITOR" + }, + { + "$ref": "#/components/schemas/OrganizationMemberRole.INTERACTIVE_VIEWER" + }, + { + "$ref": "#/components/schemas/OrganizationMemberRole.VIEWER" + }, + { + "$ref": "#/components/schemas/OrganizationMemberRole.MEMBER" + } + ] + }, + "AllowedEmailDomains": { + "properties": { + "projects": { "items": { - "type": "string" + "properties": { + "role": { + "$ref": "#/components/schemas/AllowedEmailDomainProjectsRole" + }, + "projectUuid": { + "type": "string" + } + }, + "required": [ + "role", + "projectUuid" + ], + "type": "object" }, "type": "array" }, - "customLabels": { - "$ref": "#/components/schemas/CustomLabel" + "role": { + "$ref": "#/components/schemas/AllowedEmailDomainsRole" }, - "columnOrder": { + "emailDomains": { "items": { "type": "string" }, "type": "array" }, - "showTableNames": { - "type": "boolean" - }, - "metricQuery": { - "$ref": "#/components/schemas/MetricQueryResponse" - }, - "exploreId": { - "type": "string" - }, - "projectUuid": { + "organizationUuid": { "type": "string" } }, "required": [ - "columnOrder", - "showTableNames", - "metricQuery", - "exploreId", - "projectUuid" + "projects", + "role", + "emailDomains", + "organizationUuid" ], "type": "object" }, - "ApiJobScheduledResponse": { + "ApiOrganizationAllowedEmailDomains": { "properties": { "results": { - "properties": { - "jobId": { - "type": "string" - } - }, - "required": [ - "jobId" - ], - "type": "object" + "$ref": "#/components/schemas/AllowedEmailDomains" }, "status": { "type": "string", @@ -9855,104 +13174,96 @@ ], "type": "object" }, - "Group": { - "properties": { - "organizationUuid": { - "type": "string", - "description": "The UUID of the organization that the group belongs to" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "The time that the group was created" - }, - "name": { - "type": "string", - "description": "A friendly name for the group" - }, - "uuid": { - "type": "string", - "description": "The group's UUID" - } - }, - "required": [ - "organizationUuid", - "createdAt", - "name", - "uuid" - ], - "type": "object" - }, - "GroupMember": { + "Pick_AllowedEmailDomains.Exclude_keyofAllowedEmailDomains.organizationUuid__": { "properties": { - "lastName": { - "type": "string", - "description": "The user's last name" - }, - "firstName": { - "type": "string", - "description": "The user's first name" + "role": { + "$ref": "#/components/schemas/AllowedEmailDomainsRole" }, - "email": { - "type": "string", - "description": "Primary email address for the user" + "emailDomains": { + "items": { + "type": "string" + }, + "type": "array" }, - "userUuid": { - "type": "string", - "description": "Unique id for the user", - "format": "uuid" + "projects": { + "items": { + "properties": { + "role": { + "$ref": "#/components/schemas/AllowedEmailDomainProjectsRole" + }, + "projectUuid": { + "type": "string" + } + }, + "required": [ + "role", + "projectUuid" + ], + "type": "object" + }, + "type": "array" } }, "required": [ - "lastName", - "firstName", - "email", - "userUuid" + "role", + "emailDomains", + "projects" ], "type": "object", - "description": "A summary for a Lightdash user within a group" + "description": "From T, pick a set of properties whose keys are in the union K" }, - "GroupWithMembers": { - "allOf": [ - { - "$ref": "#/components/schemas/Group" + "KnexPaginatedData_Group-Array-or-GroupWithMembers-Array_": { + "properties": { + "pagination": { + "allOf": [ + { + "$ref": "#/components/schemas/KnexPaginateArgs" + }, + { + "properties": { + "totalResults": { + "type": "number", + "format": "double" + }, + "totalPageCount": { + "type": "number", + "format": "double" + } + }, + "required": [ + "totalResults", + "totalPageCount" + ], + "type": "object" + } + ] }, - { - "properties": { - "memberUuids": { + "data": { + "anyOf": [ + { "items": { - "type": "string" + "$ref": "#/components/schemas/Group" }, "type": "array" }, - "members": { + { "items": { - "$ref": "#/components/schemas/GroupMember" + "$ref": "#/components/schemas/GroupWithMembers" }, - "type": "array", - "description": "A list of the group's members." + "type": "array" } - }, - "required": [ - "memberUuids", - "members" - ], - "type": "object" + ] } + }, + "required": [ + "data" ], - "description": "Details for a group including a list of the group's members." + "type": "object" }, - "ApiGroupResponse": { + "ApiGroupListResponse": { "properties": { "results": { - "anyOf": [ - { - "$ref": "#/components/schemas/Group" - }, - { - "$ref": "#/components/schemas/GroupWithMembers" - } - ] + "$ref": "#/components/schemas/KnexPaginatedData_Group-Array-or-GroupWithMembers-Array_" }, "status": { "type": "string", @@ -9968,41 +13279,41 @@ ], "type": "object" }, - "Pick_GroupMember.userUuid_": { + "Pick_Group.name_": { "properties": { - "userUuid": { + "name": { "type": "string", - "description": "Unique id for the user", - "format": "uuid" + "description": "A friendly name for the group" } }, "required": [ - "userUuid" + "name" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "UpdateGroupWithMembers": { - "properties": { - "members": { - "items": { - "$ref": "#/components/schemas/Pick_GroupMember.userUuid_" - }, - "type": "array" + "CreateGroup": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_Group.name_" }, - "name": { - "type": "string" + { + "properties": { + "members": { + "items": { + "$ref": "#/components/schemas/Pick_GroupMember.userUuid_" + }, + "type": "array" + } + }, + "type": "object" } - }, - "type": "object" + ] }, - "ApiGroupMembersResponse": { + "ApiCreateGroupResponse": { "properties": { "results": { - "items": { - "$ref": "#/components/schemas/GroupMember" - }, - "type": "array" + "$ref": "#/components/schemas/GroupWithMembers" }, "status": { "type": "string", @@ -10018,193 +13329,370 @@ ], "type": "object" }, - "ProjectMemberRole": { + "ResourceItemCategory": { "enum": [ - "viewer", - "interactive_viewer", - "editor", - "developer", - "admin" + "mostPopular", + "recentlyUpdated", + "pinned" ], "type": "string" }, - "Pick_CreateDBProjectGroupAccess.role_": { + "Pick_ValidationResponse.error-or-createdAt-or-validationId_": { "properties": { - "role": { - "$ref": "#/components/schemas/ProjectMemberRole" + "validationId": { + "type": "number", + "format": "double" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "error": { + "type": "string" } }, "required": [ - "role" + "validationId", + "createdAt", + "error" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "ProjectGroupAccess": { + "Pick_DashboardBasicDetails.uuid-or-spaceUuid-or-description-or-name-or-views-or-firstViewedAt-or-pinnedListUuid-or-pinnedListOrder-or-updatedAt-or-updatedByUser-or-validationErrors_": { "properties": { - "role": { - "$ref": "#/components/schemas/ProjectMemberRole" + "name": { + "type": "string" }, - "groupUuid": { + "description": { "type": "string" }, - "projectUuid": { + "uuid": { "type": "string" + }, + "spaceUuid": { + "type": "string" + }, + "pinnedListUuid": { + "type": "string", + "nullable": true + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" + }, + "views": { + "type": "number", + "format": "double" + }, + "firstViewedAt": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "string" + } + ], + "nullable": true + }, + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true + }, + "validationErrors": { + "items": { + "$ref": "#/components/schemas/Pick_ValidationResponse.error-or-createdAt-or-validationId_" + }, + "type": "array" } }, "required": [ - "role", - "groupUuid", - "projectUuid" + "name", + "uuid", + "spaceUuid", + "pinnedListUuid", + "updatedAt", + "views", + "firstViewedAt", + "pinnedListOrder" ], - "type": "object" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "ApiCreateProjectGroupAccess": { + "ResourceViewItemType.DASHBOARD": { + "enum": [ + "dashboard" + ], + "type": "string" + }, + "ResourceViewDashboardItem": { "properties": { - "results": { - "$ref": "#/components/schemas/ProjectGroupAccess" + "category": { + "$ref": "#/components/schemas/ResourceItemCategory" }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false + "data": { + "$ref": "#/components/schemas/Pick_DashboardBasicDetails.uuid-or-spaceUuid-or-description-or-name-or-views-or-firstViewedAt-or-pinnedListUuid-or-pinnedListOrder-or-updatedAt-or-updatedByUser-or-validationErrors_" + }, + "type": { + "$ref": "#/components/schemas/ResourceViewItemType.DASHBOARD" } }, "required": [ - "results", - "status" + "data", + "type" ], "type": "object" }, - "Pick_DBProjectGroupAccess.role_": { + "ChartType": { + "enum": [ + "cartesian", + "table", + "big_number", + "pie", + "funnel", + "custom" + ], + "type": "string" + }, + "Pick_SpaceQuery.uuid-or-name-or-chartType-or-chartKind-or-firstViewedAt-or-views-or-pinnedListUuid-or-pinnedListOrder-or-spaceUuid-or-description-or-updatedAt-or-updatedByUser-or-validationErrors-or-slug_": { "properties": { - "role": { - "$ref": "#/components/schemas/ProjectMemberRole" + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "spaceUuid": { + "type": "string" + }, + "pinnedListUuid": { + "type": "string", + "nullable": true + }, + "slug": { + "type": "string" + }, + "chartKind": { + "$ref": "#/components/schemas/ChartKind" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" + }, + "views": { + "type": "number", + "format": "double" + }, + "firstViewedAt": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "string" + } + ], + "nullable": true + }, + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true + }, + "validationErrors": { + "items": { + "$ref": "#/components/schemas/Pick_ValidationResponse.error-or-createdAt-or-validationId_" + }, + "type": "array" + }, + "chartType": { + "$ref": "#/components/schemas/ChartType" } }, "required": [ - "role" + "name", + "uuid", + "spaceUuid", + "pinnedListUuid", + "slug", + "updatedAt", + "views", + "firstViewedAt", + "pinnedListOrder" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "ApiUpdateProjectGroupAccess": { - "properties": { - "results": { - "$ref": "#/components/schemas/ProjectGroupAccess" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" + "ChartSourceType": { + "enum": [ + "dbt_explore", + "sql", + "semantic_layer" ], - "type": "object" + "type": "string" }, - "ApiNotificationResourceType": { + "ResourceViewItemType.CHART": { "enum": [ - "dashboardComments" + "chart" ], "type": "string" }, - "NotificationBase": { + "ResourceViewChartItem": { "properties": { - "url": { - "type": "string" - }, - "message": { - "type": "string" - }, - "resourceUuid": { - "type": "string" - }, - "viewed": { - "type": "boolean" + "category": { + "$ref": "#/components/schemas/ResourceItemCategory" }, - "createdAt": { - "type": "string", - "format": "date-time" + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_SpaceQuery.uuid-or-name-or-chartType-or-chartKind-or-firstViewedAt-or-views-or-pinnedListUuid-or-pinnedListOrder-or-spaceUuid-or-description-or-updatedAt-or-updatedByUser-or-validationErrors-or-slug_" + }, + { + "properties": { + "source": { + "$ref": "#/components/schemas/ChartSourceType" + } + }, + "type": "object" + } + ] }, - "notificationId": { - "type": "string" + "type": { + "$ref": "#/components/schemas/ResourceViewItemType.CHART" } }, "required": [ - "viewed", - "createdAt", - "notificationId" + "data", + "type" ], "type": "object" }, - "NotificationDashboardTileCommentMetadata": { + "Pick_Space.projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-organizationUuid_": { "properties": { - "dashboardUuid": { + "name": { "type": "string" }, - "dashboardName": { + "uuid": { "type": "string" }, - "dashboardTileUuid": { + "projectUuid": { "type": "string" }, - "dashboardTileName": { + "organizationUuid": { "type": "string" + }, + "pinnedListUuid": { + "type": "string", + "nullable": true + }, + "isPrivate": { + "type": "boolean" + }, + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true } }, "required": [ - "dashboardUuid", - "dashboardName", - "dashboardTileUuid", - "dashboardTileName" + "name", + "uuid", + "projectUuid", + "organizationUuid", + "pinnedListUuid", + "isPrivate", + "pinnedListOrder" ], "type": "object", - "additionalProperties": true + "description": "From T, pick a set of properties whose keys are in the union K" }, - "ApiNotificationResourceType.DashboardComments": { + "ResourceViewItemType.SPACE": { "enum": [ - "dashboardComments" + "space" ], "type": "string" }, - "NotificationDashboardComment": { - "allOf": [ - { - "$ref": "#/components/schemas/NotificationBase" - }, - { - "properties": { - "metadata": { - "$ref": "#/components/schemas/NotificationDashboardTileCommentMetadata" + "ResourceViewSpaceItem": { + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_Space.projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-organizationUuid_" }, - "resourceType": { - "$ref": "#/components/schemas/ApiNotificationResourceType.DashboardComments" + { + "properties": { + "chartCount": { + "type": "number", + "format": "double" + }, + "dashboardCount": { + "type": "number", + "format": "double" + }, + "accessListLength": { + "type": "number", + "format": "double" + }, + "access": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "chartCount", + "dashboardCount", + "accessListLength", + "access" + ], + "type": "object" } - }, - "required": [ - "resourceType" - ], - "type": "object" + ] + }, + "type": { + "$ref": "#/components/schemas/ResourceViewItemType.SPACE" } - ] + }, + "required": [ + "data", + "type" + ], + "type": "object" }, - "ApiNotificationsResults": { + "PinnedItems": { "items": { - "$ref": "#/components/schemas/NotificationDashboardComment" + "anyOf": [ + { + "$ref": "#/components/schemas/ResourceViewDashboardItem" + }, + { + "$ref": "#/components/schemas/ResourceViewChartItem" + }, + { + "$ref": "#/components/schemas/ResourceViewSpaceItem" + } + ] }, "type": "array" }, - "ApiGetNotifications": { + "ApiPinnedItems": { "properties": { "results": { - "$ref": "#/components/schemas/ApiNotificationsResults" + "$ref": "#/components/schemas/PinnedItems" }, "status": { "type": "string", @@ -10220,933 +13708,915 @@ ], "type": "object" }, - "Pick_Notification.viewed_": { - "properties": { - "viewed": { - "type": "boolean" - } - }, - "required": [ - "viewed" - ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Organization": { + "Pick_ResourceViewItem-at-data.uuid-or-pinnedListOrder_": { "properties": { - "defaultProjectUuid": { - "type": "string", - "description": "The project a user sees when they first log in to the organization" - }, - "needsProject": { - "type": "boolean", - "description": "The organization needs a project if it doesn't have at least one project." - }, - "chartColors": { - "items": { - "type": "string" - }, - "type": "array", - "description": "The default color palette for all projects in the organization" - }, - "name": { - "type": "string", - "description": "The name of the organization" + "uuid": { + "type": "string" }, - "organizationUuid": { - "type": "string", - "description": "The unique identifier of the organization", - "format": "uuid" + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true } }, "required": [ - "name", - "organizationUuid" + "uuid", + "pinnedListOrder" ], "type": "object", - "description": "Details of a user's Organization" + "description": "From T, pick a set of properties whose keys are in the union K" }, - "ApiOrganization": { + "ResourceViewItemType": { + "enum": [ + "chart", + "dashboard", + "space" + ], + "type": "string" + }, + "UpdatePinnedItemOrder": { "properties": { - "results": { - "$ref": "#/components/schemas/Organization" + "data": { + "$ref": "#/components/schemas/Pick_ResourceViewItem-at-data.uuid-or-pinnedListOrder_" }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false + "type": { + "$ref": "#/components/schemas/ResourceViewItemType" } }, "required": [ - "results", - "status" + "data", + "type" ], "type": "object" }, - "Pick_Organization.name_": { + "SemanticLayerType.DBT": { + "enum": [ + "DBT" + ], + "type": "string" + }, + "DbtSemanticLayerConnection": { "properties": { - "name": { - "type": "string", - "description": "The name of the organization" + "token": { + "type": "string" + }, + "domain": { + "type": "string" + }, + "environmentId": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/SemanticLayerType.DBT" } }, "required": [ - "name" + "token", + "domain", + "environmentId", + "type" ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "type": "object" }, - "Partial_Omit_Organization.organizationUuid-or-needsProject__": { + "SemanticLayerType.CUBE": { + "enum": [ + "CUBE" + ], + "type": "string" + }, + "CubeSemanticLayerConnection": { "properties": { - "name": { - "type": "string", - "description": "The name of the organization" + "token": { + "type": "string" }, - "chartColors": { - "items": { - "type": "string" - }, - "type": "array", - "description": "The default color palette for all projects in the organization" + "domain": { + "type": "string" }, - "defaultProjectUuid": { - "type": "string", - "description": "The project a user sees when they first log in to the organization" + "type": { + "$ref": "#/components/schemas/SemanticLayerType.CUBE" } }, - "type": "object", - "description": "Make all properties in T optional" + "required": [ + "token", + "domain", + "type" + ], + "type": "object" }, - "WarehouseTypes": { + "SemanticLayerConnection": { + "anyOf": [ + { + "$ref": "#/components/schemas/DbtSemanticLayerConnection" + }, + { + "$ref": "#/components/schemas/CubeSemanticLayerConnection" + } + ] + }, + "SupportedDbtVersions": { "enum": [ - "bigquery", - "postgres", - "redshift", - "snowflake", - "databricks", - "trino" + "v1.4", + "v1.5", + "v1.6", + "v1.7", + "v1.8" ], "type": "string" }, - "ProjectType": { + "WarehouseTypes.SNOWFLAKE": { "enum": [ - "DEFAULT", - "PREVIEW" + "snowflake" ], "type": "string" }, - "OrganizationProject": { + "WeekDay": { + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6 + ], + "type": "number" + }, + "Pick_CreateSnowflakeCredentials.Exclude_keyofCreateSnowflakeCredentials.SensitiveCredentialsFieldNames__": { "properties": { + "type": { + "$ref": "#/components/schemas/WarehouseTypes.SNOWFLAKE" + }, + "warehouse": { + "type": "string" + }, + "role": { + "type": "string" + }, + "account": { + "type": "string" + }, "requireUserCredentials": { "type": "boolean" }, - "warehouseType": { - "$ref": "#/components/schemas/WarehouseTypes" + "database": { + "type": "string" }, - "type": { - "$ref": "#/components/schemas/ProjectType" + "schema": { + "type": "string" }, - "name": { + "threads": { + "type": "number", + "format": "double" + }, + "clientSessionKeepAlive": { + "type": "boolean" + }, + "queryTag": { "type": "string" }, - "projectUuid": { - "type": "string", - "description": "The unique identifier of the project", - "format": "uuid" + "accessUrl": { + "type": "string" + }, + "startOfWeek": { + "allOf": [ + { + "$ref": "#/components/schemas/WeekDay" + } + ], + "nullable": true + }, + "quotedIdentifiersIgnoreCase": { + "type": "boolean" + }, + "override": { + "type": "string" } }, "required": [ - "requireUserCredentials", - "warehouseType", "type", - "name", - "projectUuid" + "warehouse", + "account", + "database", + "schema" ], "type": "object", - "description": "Summary of a project under an organization" + "description": "From T, pick a set of properties whose keys are in the union K" }, - "ApiOrganizationProjects": { - "properties": { - "results": { - "items": { - "$ref": "#/components/schemas/OrganizationProject" - }, - "type": "array" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" + "WarehouseTypes.REDSHIFT": { + "enum": [ + "redshift" ], - "type": "object", - "description": "List of projects in the current organization" + "type": "string" }, - "KnexPaginateArgs": { + "Pick_CreateRedshiftCredentials.Exclude_keyofCreateRedshiftCredentials.SensitiveCredentialsFieldNames__": { "properties": { - "page": { + "type": { + "$ref": "#/components/schemas/WarehouseTypes.REDSHIFT" + }, + "requireUserCredentials": { + "type": "boolean" + }, + "schema": { + "type": "string" + }, + "threads": { + "type": "number", + "format": "double" + }, + "startOfWeek": { + "allOf": [ + { + "$ref": "#/components/schemas/WeekDay" + } + ], + "nullable": true + }, + "useSshTunnel": { + "type": "boolean" + }, + "sshTunnelHost": { + "type": "string" + }, + "sshTunnelPort": { + "type": "number", + "format": "double" + }, + "sshTunnelUser": { + "type": "string" + }, + "sshTunnelPublicKey": { + "type": "string" + }, + "host": { + "type": "string" + }, + "port": { "type": "number", "format": "double" }, - "pageSize": { + "dbname": { + "type": "string" + }, + "keepalivesIdle": { "type": "number", "format": "double" + }, + "sslmode": { + "type": "string" + }, + "ra3Node": { + "type": "boolean" } }, "required": [ - "page", - "pageSize" + "type", + "schema", + "host", + "port", + "dbname" ], - "type": "object" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "OrganizationMemberRole": { + "WarehouseTypes.POSTGRES": { "enum": [ - "member", - "viewer", - "interactive_viewer", - "editor", - "developer", - "admin" + "postgres" ], "type": "string" }, - "OrganizationMemberProfile": { + "Pick_CreatePostgresCredentials.Exclude_keyofCreatePostgresCredentials.SensitiveCredentialsFieldNames__": { "properties": { - "isInviteExpired": { - "type": "boolean", - "description": "Whether the user's invite to the organization has expired" - }, - "isActive": { - "type": "boolean", - "description": "Whether the user has accepted their invite to the organization" + "type": { + "$ref": "#/components/schemas/WarehouseTypes.POSTGRES" }, "role": { - "$ref": "#/components/schemas/OrganizationMemberRole", - "description": "The role of the user in the organization" + "type": "string" }, - "organizationUuid": { - "type": "string", - "description": "Unique identifier for the organization the user is a member of" + "requireUserCredentials": { + "type": "boolean" }, - "email": { + "schema": { "type": "string" }, - "lastName": { + "threads": { + "type": "number", + "format": "double" + }, + "startOfWeek": { + "allOf": [ + { + "$ref": "#/components/schemas/WeekDay" + } + ], + "nullable": true + }, + "useSshTunnel": { + "type": "boolean" + }, + "sshTunnelHost": { "type": "string" }, - "firstName": { + "sshTunnelPort": { + "type": "number", + "format": "double" + }, + "sshTunnelUser": { "type": "string" }, - "userUuid": { - "type": "string", - "description": "Unique identifier for the user", - "format": "uuid" + "sshTunnelPublicKey": { + "type": "string" + }, + "host": { + "type": "string" + }, + "port": { + "type": "number", + "format": "double" + }, + "dbname": { + "type": "string" + }, + "keepalivesIdle": { + "type": "number", + "format": "double" + }, + "sslmode": { + "type": "string" + }, + "searchPath": { + "type": "string" } }, "required": [ - "isActive", - "role", - "organizationUuid", - "email", - "lastName", - "firstName", - "userUuid" + "type", + "schema", + "host", + "port", + "dbname" ], "type": "object", - "description": "Profile for a user's membership in an organization" + "description": "From T, pick a set of properties whose keys are in the union K" }, - "KnexPaginatedData_OrganizationMemberProfile-Array_": { + "WarehouseTypes.BIGQUERY": { + "enum": [ + "bigquery" + ], + "type": "string" + }, + "Pick_CreateBigqueryCredentials.Exclude_keyofCreateBigqueryCredentials.SensitiveCredentialsFieldNames__": { "properties": { - "pagination": { + "type": { + "$ref": "#/components/schemas/WarehouseTypes.BIGQUERY" + }, + "requireUserCredentials": { + "type": "boolean" + }, + "threads": { + "type": "number", + "format": "double" + }, + "startOfWeek": { "allOf": [ { - "$ref": "#/components/schemas/KnexPaginateArgs" - }, - { - "properties": { - "totalPageCount": { - "type": "number", - "format": "double" - } - }, - "required": [ - "totalPageCount" - ], - "type": "object" + "$ref": "#/components/schemas/WeekDay" } - ] + ], + "nullable": true }, - "data": { - "items": { - "$ref": "#/components/schemas/OrganizationMemberProfile" - }, - "type": "array" - } - }, - "required": [ - "data" - ], - "type": "object" - }, - "ApiOrganizationMemberProfiles": { - "properties": { - "results": { - "$ref": "#/components/schemas/KnexPaginatedData_OrganizationMemberProfile-Array_" + "project": { + "type": "string" }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" - }, - "UUID": { - "type": "string", - "format": "uuid", - "description": "Stringified UUIDv4.\nSee [RFC 4112](https://tools.ietf.org/html/rfc4122)", - "pattern": "[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}" - }, - "ApiOrganizationMemberProfile": { - "properties": { - "results": { - "$ref": "#/components/schemas/OrganizationMemberProfile" + "dataset": { + "type": "string" }, - "status": { + "timeoutSeconds": { + "type": "number", + "format": "double" + }, + "priority": { "type": "string", "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" - }, - "OrganizationMemberProfileUpdate": { - "properties": { - "role": { - "$ref": "#/components/schemas/OrganizationMemberRole" - } - }, - "required": [ - "role" - ], - "type": "object" - }, - "ProjectMemberRole.EDITOR": { - "enum": [ - "editor" - ], - "type": "string" - }, - "ProjectMemberRole.INTERACTIVE_VIEWER": { - "enum": [ - "interactive_viewer" - ], - "type": "string" - }, - "ProjectMemberRole.VIEWER": { - "enum": [ - "viewer" - ], - "type": "string" - }, - "AllowedEmailDomainProjectsRole": { - "anyOf": [ - { - "$ref": "#/components/schemas/ProjectMemberRole.EDITOR" + "interactive", + "batch" + ] }, - { - "$ref": "#/components/schemas/ProjectMemberRole.INTERACTIVE_VIEWER" + "retries": { + "type": "number", + "format": "double" }, - { - "$ref": "#/components/schemas/ProjectMemberRole.VIEWER" + "location": { + "type": "string" + }, + "maximumBytesBilled": { + "type": "number", + "format": "double" + }, + "executionProject": { + "type": "string" } - ] - }, - "OrganizationMemberRole.EDITOR": { - "enum": [ - "editor" - ], - "type": "string" - }, - "OrganizationMemberRole.INTERACTIVE_VIEWER": { - "enum": [ - "interactive_viewer" - ], - "type": "string" - }, - "OrganizationMemberRole.VIEWER": { - "enum": [ - "viewer" + }, + "required": [ + "type", + "project", + "dataset" ], - "type": "string" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "OrganizationMemberRole.MEMBER": { + "WarehouseTypes.DATABRICKS": { "enum": [ - "member" + "databricks" ], "type": "string" }, - "AllowedEmailDomainsRole": { - "anyOf": [ - { - "$ref": "#/components/schemas/OrganizationMemberRole.EDITOR" + "Pick_CreateDatabricksCredentials.Exclude_keyofCreateDatabricksCredentials.SensitiveCredentialsFieldNames__": { + "properties": { + "type": { + "$ref": "#/components/schemas/WarehouseTypes.DATABRICKS" }, - { - "$ref": "#/components/schemas/OrganizationMemberRole.INTERACTIVE_VIEWER" + "requireUserCredentials": { + "type": "boolean" }, - { - "$ref": "#/components/schemas/OrganizationMemberRole.VIEWER" + "database": { + "type": "string" }, - { - "$ref": "#/components/schemas/OrganizationMemberRole.MEMBER" - } - ] - }, - "AllowedEmailDomains": { - "properties": { - "projects": { - "items": { - "properties": { - "role": { - "$ref": "#/components/schemas/AllowedEmailDomainProjectsRole" - }, - "projectUuid": { - "type": "string" - } - }, - "required": [ - "role", - "projectUuid" - ], - "type": "object" - }, - "type": "array" + "startOfWeek": { + "allOf": [ + { + "$ref": "#/components/schemas/WeekDay" + } + ], + "nullable": true }, - "role": { - "$ref": "#/components/schemas/AllowedEmailDomainsRole" + "catalog": { + "type": "string" }, - "emailDomains": { - "items": { - "type": "string" - }, - "type": "array" + "serverHostName": { + "type": "string" }, - "organizationUuid": { + "httpPath": { "type": "string" } }, "required": [ - "projects", - "role", - "emailDomains", - "organizationUuid" + "type", + "database", + "serverHostName", + "httpPath" ], - "type": "object" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "ApiOrganizationAllowedEmailDomains": { + "WarehouseTypes.TRINO": { + "enum": [ + "trino" + ], + "type": "string" + }, + "Pick_CreateTrinoCredentials.Exclude_keyofCreateTrinoCredentials.SensitiveCredentialsFieldNames__": { "properties": { - "results": { - "$ref": "#/components/schemas/AllowedEmailDomains" + "type": { + "$ref": "#/components/schemas/WarehouseTypes.TRINO" }, - "status": { - "type": "string", - "enum": [ - "ok" + "requireUserCredentials": { + "type": "boolean" + }, + "schema": { + "type": "string" + }, + "startOfWeek": { + "allOf": [ + { + "$ref": "#/components/schemas/WeekDay" + } ], - "nullable": false + "nullable": true + }, + "host": { + "type": "string" + }, + "port": { + "type": "number", + "format": "double" + }, + "dbname": { + "type": "string" + }, + "http_scheme": { + "type": "string" } }, "required": [ - "results", - "status" + "type", + "schema", + "host", + "port", + "dbname", + "http_scheme" ], - "type": "object" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "Pick_AllowedEmailDomains.Exclude_keyofAllowedEmailDomains.organizationUuid__": { - "properties": { - "role": { - "$ref": "#/components/schemas/AllowedEmailDomainsRole" + "WarehouseCredentials": { + "anyOf": [ + { + "$ref": "#/components/schemas/Pick_CreateSnowflakeCredentials.Exclude_keyofCreateSnowflakeCredentials.SensitiveCredentialsFieldNames__" }, - "emailDomains": { - "items": { - "type": "string" - }, - "type": "array" + { + "$ref": "#/components/schemas/Pick_CreateRedshiftCredentials.Exclude_keyofCreateRedshiftCredentials.SensitiveCredentialsFieldNames__" }, - "projects": { - "items": { - "properties": { - "role": { - "$ref": "#/components/schemas/AllowedEmailDomainProjectsRole" - }, - "projectUuid": { - "type": "string" - } - }, - "required": [ - "role", - "projectUuid" - ], - "type": "object" - }, - "type": "array" + { + "$ref": "#/components/schemas/Pick_CreatePostgresCredentials.Exclude_keyofCreatePostgresCredentials.SensitiveCredentialsFieldNames__" + }, + { + "$ref": "#/components/schemas/Pick_CreateBigqueryCredentials.Exclude_keyofCreateBigqueryCredentials.SensitiveCredentialsFieldNames__" + }, + { + "$ref": "#/components/schemas/Pick_CreateDatabricksCredentials.Exclude_keyofCreateDatabricksCredentials.SensitiveCredentialsFieldNames__" + }, + { + "$ref": "#/components/schemas/Pick_CreateTrinoCredentials.Exclude_keyofCreateTrinoCredentials.SensitiveCredentialsFieldNames__" } - }, - "required": [ - "role", - "emailDomains", - "projects" + ] + }, + "DbtProjectType.DBT": { + "enum": [ + "dbt" ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "type": "string" }, - "ApiGroupListResponse": { + "DbtProjectEnvironmentVariable": { "properties": { - "results": { - "anyOf": [ - { - "items": { - "$ref": "#/components/schemas/Group" - }, - "type": "array" - }, - { - "items": { - "$ref": "#/components/schemas/GroupWithMembers" - }, - "type": "array" - } - ] + "value": { + "type": "string" }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false + "key": { + "type": "string" } }, "required": [ - "results", - "status" + "value", + "key" ], "type": "object" }, - "Pick_Group.name_": { + "DbtLocalProjectConfig": { "properties": { - "name": { - "type": "string", - "description": "A friendly name for the group" + "type": { + "$ref": "#/components/schemas/DbtProjectType.DBT" + }, + "target": { + "type": "string" + }, + "environment": { + "items": { + "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" + }, + "type": "array" + }, + "profiles_dir": { + "type": "string" + }, + "project_dir": { + "type": "string" } }, "required": [ - "name" + "type" ], "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "CreateGroup": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_Group.name_" - }, - { - "properties": { - "members": { - "items": { - "$ref": "#/components/schemas/Pick_GroupMember.userUuid_" - }, - "type": "array" - } - }, - "type": "object" - } - ] + "additionalProperties": true }, - "ResourceItemCategory": { + "DbtProjectType.DBT_CLOUD_IDE": { "enum": [ - "mostPopular", - "recentlyUpdated", - "pinned" + "dbt_cloud_ide" ], "type": "string" }, - "Pick_ValidationResponse.error-or-createdAt-or-validationId_": { + "DbtCloudIDEProjectConfig": { "properties": { - "validationId": { - "type": "number", - "format": "double" + "type": { + "$ref": "#/components/schemas/DbtProjectType.DBT_CLOUD_IDE" }, - "createdAt": { - "type": "string", - "format": "date-time" + "api_key": { + "type": "string" }, - "error": { + "environment_id": { "type": "string" } }, "required": [ - "validationId", - "createdAt", - "error" + "type", + "api_key", + "environment_id" ], "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "additionalProperties": true }, - "Pick_DashboardBasicDetails.uuid-or-spaceUuid-or-description-or-name-or-views-or-firstViewedAt-or-pinnedListUuid-or-pinnedListOrder-or-updatedAt-or-updatedByUser-or-validationErrors_": { + "DbtProjectType.GITHUB": { + "enum": [ + "github" + ], + "type": "string" + }, + "DbtGithubProjectConfig": { "properties": { - "name": { - "type": "string" + "type": { + "$ref": "#/components/schemas/DbtProjectType.GITHUB" }, - "description": { + "target": { "type": "string" }, - "uuid": { - "type": "string" + "environment": { + "items": { + "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" + }, + "type": "array" }, - "spaceUuid": { + "personal_access_token": { "type": "string" }, - "pinnedListUuid": { - "type": "string", - "nullable": true - }, - "updatedAt": { - "type": "string", - "format": "date-time" + "repository": { + "type": "string" }, - "updatedByUser": { - "$ref": "#/components/schemas/UpdatedByUser" + "branch": { + "type": "string" }, - "views": { - "type": "number", - "format": "double" + "project_sub_path": { + "type": "string" }, - "firstViewedAt": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "string" - } - ], - "nullable": true + "host_domain": { + "type": "string" + } + }, + "required": [ + "type", + "personal_access_token", + "repository", + "branch", + "project_sub_path" + ], + "type": "object", + "additionalProperties": true + }, + "DbtProjectType.BITBUCKET": { + "enum": [ + "bitbucket" + ], + "type": "string" + }, + "DbtBitBucketProjectConfig": { + "properties": { + "type": { + "$ref": "#/components/schemas/DbtProjectType.BITBUCKET" }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true + "target": { + "type": "string" }, - "validationErrors": { + "environment": { "items": { - "$ref": "#/components/schemas/Pick_ValidationResponse.error-or-createdAt-or-validationId_" + "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" }, "type": "array" + }, + "username": { + "type": "string" + }, + "personal_access_token": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "branch": { + "type": "string" + }, + "project_sub_path": { + "type": "string" + }, + "host_domain": { + "type": "string" } }, "required": [ - "name", - "uuid", - "spaceUuid", - "pinnedListUuid", - "updatedAt", - "views", - "firstViewedAt", - "pinnedListOrder" + "type", + "username", + "personal_access_token", + "repository", + "branch", + "project_sub_path" ], "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "additionalProperties": true }, - "ResourceViewItemType.DASHBOARD": { + "DbtProjectType.GITLAB": { "enum": [ - "dashboard" + "gitlab" ], "type": "string" }, - "ResourceViewDashboardItem": { + "DbtGitlabProjectConfig": { "properties": { - "category": { - "$ref": "#/components/schemas/ResourceItemCategory" + "type": { + "$ref": "#/components/schemas/DbtProjectType.GITLAB" }, - "data": { - "$ref": "#/components/schemas/Pick_DashboardBasicDetails.uuid-or-spaceUuid-or-description-or-name-or-views-or-firstViewedAt-or-pinnedListUuid-or-pinnedListOrder-or-updatedAt-or-updatedByUser-or-validationErrors_" + "target": { + "type": "string" }, - "type": { - "$ref": "#/components/schemas/ResourceViewItemType.DASHBOARD" + "environment": { + "items": { + "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" + }, + "type": "array" + }, + "personal_access_token": { + "type": "string" + }, + "repository": { + "type": "string" + }, + "branch": { + "type": "string" + }, + "project_sub_path": { + "type": "string" + }, + "host_domain": { + "type": "string" } }, "required": [ - "data", - "type" + "type", + "personal_access_token", + "repository", + "branch", + "project_sub_path" ], - "type": "object" + "type": "object", + "additionalProperties": true }, - "ChartType": { + "DbtProjectType.AZURE_DEVOPS": { "enum": [ - "cartesian", - "table", - "big_number", - "pie", - "funnel", - "custom" + "azure_devops" ], "type": "string" }, - "Pick_SpaceQuery.uuid-or-name-or-chartType-or-chartKind-or-firstViewedAt-or-views-or-pinnedListUuid-or-pinnedListOrder-or-spaceUuid-or-description-or-updatedAt-or-updatedByUser-or-validationErrors-or-slug_": { + "DbtAzureDevOpsProjectConfig": { "properties": { - "name": { + "type": { + "$ref": "#/components/schemas/DbtProjectType.AZURE_DEVOPS" + }, + "target": { "type": "string" }, - "description": { - "type": "string" + "environment": { + "items": { + "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" + }, + "type": "array" }, - "uuid": { + "personal_access_token": { "type": "string" }, - "spaceUuid": { + "organization": { "type": "string" }, - "pinnedListUuid": { - "type": "string", - "nullable": true - }, - "slug": { + "project": { "type": "string" }, - "chartKind": { - "$ref": "#/components/schemas/ChartKind" - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "updatedByUser": { - "$ref": "#/components/schemas/UpdatedByUser" - }, - "views": { - "type": "number", - "format": "double" - }, - "firstViewedAt": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "string" - } - ], - "nullable": true - }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true + "repository": { + "type": "string" }, - "validationErrors": { - "items": { - "$ref": "#/components/schemas/Pick_ValidationResponse.error-or-createdAt-or-validationId_" - }, - "type": "array" + "branch": { + "type": "string" }, - "chartType": { - "$ref": "#/components/schemas/ChartType" + "project_sub_path": { + "type": "string" } }, "required": [ - "name", - "uuid", - "spaceUuid", - "pinnedListUuid", - "slug", - "updatedAt", - "views", - "firstViewedAt", - "pinnedListOrder" + "type", + "personal_access_token", + "organization", + "project", + "repository", + "branch", + "project_sub_path" ], "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "ChartSourceType": { - "enum": [ - "dbt_explore", - "sql", - "semantic_layer" - ], - "type": "string" + "additionalProperties": true }, - "ResourceViewItemType.CHART": { + "DbtProjectType.NONE": { "enum": [ - "chart" + "none" ], "type": "string" }, - "ResourceViewChartItem": { + "DbtNoneProjectConfig": { "properties": { - "category": { - "$ref": "#/components/schemas/ResourceItemCategory" + "type": { + "$ref": "#/components/schemas/DbtProjectType.NONE" }, - "data": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_SpaceQuery.uuid-or-name-or-chartType-or-chartKind-or-firstViewedAt-or-views-or-pinnedListUuid-or-pinnedListOrder-or-spaceUuid-or-description-or-updatedAt-or-updatedByUser-or-validationErrors-or-slug_" - }, - { - "properties": { - "source": { - "$ref": "#/components/schemas/ChartSourceType" - } - }, - "type": "object" - } - ] + "target": { + "type": "string" }, - "type": { - "$ref": "#/components/schemas/ResourceViewItemType.CHART" + "environment": { + "items": { + "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" + }, + "type": "array" + }, + "hideRefreshButton": { + "type": "boolean" } }, "required": [ - "data", "type" ], - "type": "object" + "type": "object", + "additionalProperties": true }, - "Pick_Space.projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-organizationUuid_": { + "DbtProjectConfig": { + "anyOf": [ + { + "$ref": "#/components/schemas/DbtLocalProjectConfig" + }, + { + "$ref": "#/components/schemas/DbtCloudIDEProjectConfig" + }, + { + "$ref": "#/components/schemas/DbtGithubProjectConfig" + }, + { + "$ref": "#/components/schemas/DbtBitBucketProjectConfig" + }, + { + "$ref": "#/components/schemas/DbtGitlabProjectConfig" + }, + { + "$ref": "#/components/schemas/DbtAzureDevOpsProjectConfig" + }, + { + "$ref": "#/components/schemas/DbtNoneProjectConfig" + } + ] + }, + "Project": { "properties": { - "name": { - "type": "string" + "createdByUserUuid": { + "type": "string", + "nullable": true }, - "uuid": { + "schedulerTimezone": { "type": "string" }, - "projectUuid": { - "type": "string" + "semanticLayerConnection": { + "$ref": "#/components/schemas/SemanticLayerConnection" }, - "organizationUuid": { + "dbtVersion": { + "$ref": "#/components/schemas/SupportedDbtVersions" + }, + "upstreamProjectUuid": { "type": "string" }, "pinnedListUuid": { - "type": "string", - "nullable": true + "type": "string" }, - "isPrivate": { - "type": "boolean" + "warehouseConnection": { + "$ref": "#/components/schemas/WarehouseCredentials" }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true - } - }, - "required": [ - "name", - "uuid", - "projectUuid", - "organizationUuid", - "pinnedListUuid", - "isPrivate", - "pinnedListOrder" - ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "ResourceViewItemType.SPACE": { - "enum": [ - "space" - ], - "type": "string" - }, - "ResourceViewSpaceItem": { - "properties": { - "data": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_Space.projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-organizationUuid_" - }, - { - "properties": { - "chartCount": { - "type": "number", - "format": "double" - }, - "dashboardCount": { - "type": "number", - "format": "double" - }, - "accessListLength": { - "type": "number", - "format": "double" - }, - "access": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "chartCount", - "dashboardCount", - "accessListLength", - "access" - ], - "type": "object" - } - ] + "dbtConnection": { + "$ref": "#/components/schemas/DbtProjectConfig" }, "type": { - "$ref": "#/components/schemas/ResourceViewItemType.SPACE" + "$ref": "#/components/schemas/ProjectType" + }, + "name": { + "type": "string" + }, + "projectUuid": { + "type": "string" + }, + "organizationUuid": { + "type": "string" } }, "required": [ - "data", - "type" + "createdByUserUuid", + "schedulerTimezone", + "dbtVersion", + "dbtConnection", + "type", + "name", + "projectUuid", + "organizationUuid" ], "type": "object" }, - "PinnedItems": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/ResourceViewDashboardItem" - }, - { - "$ref": "#/components/schemas/ResourceViewChartItem" - }, - { - "$ref": "#/components/schemas/ResourceViewSpaceItem" - } - ] - }, - "type": "array" - }, - "ApiPinnedItems": { + "ApiProjectResponse": { "properties": { "results": { - "$ref": "#/components/schemas/PinnedItems" + "$ref": "#/components/schemas/Project" }, "status": { "type": "string", @@ -11162,1256 +14632,1363 @@ ], "type": "object" }, - "Pick_ResourceViewItem-at-data.uuid-or-pinnedListOrder_": { + "Pick_SavedChart.uuid-or-name-or-description-or-spaceName-or-spaceUuid-or-projectUuid-or-organizationUuid-or-pinnedListUuid-or-dashboardUuid-or-dashboardName-or-slug_": { "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, "uuid": { "type": "string" }, - "pinnedListOrder": { - "type": "number", - "format": "double", + "spaceName": { + "type": "string" + }, + "spaceUuid": { + "type": "string" + }, + "projectUuid": { + "type": "string" + }, + "organizationUuid": { + "type": "string" + }, + "pinnedListUuid": { + "type": "string", + "nullable": true + }, + "dashboardUuid": { + "type": "string", + "nullable": true + }, + "dashboardName": { + "type": "string", "nullable": true + }, + "slug": { + "type": "string" } }, "required": [ + "name", "uuid", - "pinnedListOrder" + "spaceName", + "spaceUuid", + "projectUuid", + "organizationUuid", + "pinnedListUuid", + "dashboardUuid", + "dashboardName", + "slug" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "ResourceViewItemType": { - "enum": [ - "chart", - "dashboard", - "space" - ], - "type": "string" - }, - "UpdatePinnedItemOrder": { - "properties": { - "data": { - "$ref": "#/components/schemas/Pick_ResourceViewItem-at-data.uuid-or-pinnedListOrder_" + "ChartSummary": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_SavedChart.uuid-or-name-or-description-or-spaceName-or-spaceUuid-or-projectUuid-or-organizationUuid-or-pinnedListUuid-or-dashboardUuid-or-dashboardName-or-slug_" }, - "type": { - "$ref": "#/components/schemas/ResourceViewItemType" + { + "properties": { + "source": { + "$ref": "#/components/schemas/ChartSourceType" + }, + "chartKind": { + "$ref": "#/components/schemas/ChartKind" + }, + "chartType": { + "$ref": "#/components/schemas/ChartType" + } + }, + "type": "object" } - }, - "required": [ - "data", - "type" - ], - "type": "object" - }, - "SemanticLayerType.DBT": { - "enum": [ - "DBT" - ], - "type": "string" + ] }, - "DbtSemanticLayerConnection": { + "Pick_SavedChart.updatedAt-or-updatedByUser-or-pinnedListOrder_": { "properties": { - "token": { - "type": "string" - }, - "domain": { - "type": "string" + "updatedAt": { + "type": "string", + "format": "date-time" }, - "environmentId": { - "type": "string" + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" }, - "type": { - "$ref": "#/components/schemas/SemanticLayerType.DBT" + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true } }, "required": [ - "token", - "domain", - "environmentId", - "type" - ], - "type": "object" - }, - "SemanticLayerType.CUBE": { - "enum": [ - "CUBE" + "updatedAt", + "pinnedListOrder" ], - "type": "string" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "CubeSemanticLayerConnection": { + "ViewStatistics": { "properties": { - "token": { - "type": "string" - }, - "domain": { - "type": "string" + "firstViewedAt": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "string" + } + ], + "nullable": true }, - "type": { - "$ref": "#/components/schemas/SemanticLayerType.CUBE" + "views": { + "type": "number", + "format": "double" } }, "required": [ - "token", - "domain", - "type" + "firstViewedAt", + "views" ], "type": "object" }, - "SemanticLayerConnection": { - "anyOf": [ + "SpaceQuery": { + "allOf": [ { - "$ref": "#/components/schemas/DbtSemanticLayerConnection" + "$ref": "#/components/schemas/ChartSummary" }, { - "$ref": "#/components/schemas/CubeSemanticLayerConnection" + "$ref": "#/components/schemas/Pick_SavedChart.updatedAt-or-updatedByUser-or-pinnedListOrder_" + }, + { + "$ref": "#/components/schemas/ViewStatistics" + }, + { + "properties": { + "validationErrors": { + "items": { + "$ref": "#/components/schemas/Pick_ValidationResponse.error-or-createdAt-or-validationId_" + }, + "type": "array" + } + }, + "type": "object" } ] }, - "SupportedDbtVersions": { - "enum": [ - "v1.4", - "v1.5", - "v1.6", - "v1.7", - "v1.8" - ], - "type": "string" - }, - "WarehouseTypes.SNOWFLAKE": { - "enum": [ - "snowflake" + "ApiChartListResponse": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/SpaceQuery" + }, + "type": "array" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" ], - "type": "string" + "type": "object" }, - "WeekDay": { - "enum": [ - 0, - 1, - 2, - 3, - 4, - 5, - 6 + "ApiChartSummaryListResponse": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/ChartSummary" + }, + "type": "array" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" ], - "type": "number" + "type": "object" }, - "Pick_CreateSnowflakeCredentials.Exclude_keyofCreateSnowflakeCredentials.SensitiveCredentialsFieldNames__": { + "Pick_Space.organizationUuid-or-projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-slug_": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.SNOWFLAKE" - }, - "warehouse": { - "type": "string" - }, - "role": { + "name": { "type": "string" }, - "account": { + "uuid": { "type": "string" }, - "requireUserCredentials": { - "type": "boolean" - }, - "database": { + "projectUuid": { "type": "string" }, - "schema": { + "organizationUuid": { "type": "string" }, - "threads": { - "type": "number", - "format": "double" - }, - "clientSessionKeepAlive": { - "type": "boolean" - }, - "queryTag": { - "type": "string" + "pinnedListUuid": { + "type": "string", + "nullable": true }, - "accessUrl": { + "slug": { "type": "string" }, - "startOfWeek": { - "allOf": [ - { - "$ref": "#/components/schemas/WeekDay" - } - ], - "nullable": true - }, - "quotedIdentifiersIgnoreCase": { + "isPrivate": { "type": "boolean" }, - "override": { - "type": "string" + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true } }, "required": [ - "type", - "warehouse", - "account", - "database", - "schema" + "name", + "uuid", + "projectUuid", + "organizationUuid", + "pinnedListUuid", + "slug", + "isPrivate", + "pinnedListOrder" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "WarehouseTypes.REDSHIFT": { + "SpaceMemberRole": { "enum": [ - "redshift" + "viewer", + "editor", + "admin" ], "type": "string" }, - "Pick_CreateRedshiftCredentials.Exclude_keyofCreateRedshiftCredentials.SensitiveCredentialsFieldNames__": { + "SpaceShare": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.REDSHIFT" - }, - "requireUserCredentials": { - "type": "boolean" - }, - "schema": { - "type": "string" - }, - "threads": { - "type": "number", - "format": "double" + "inheritedFrom": { + "type": "string", + "enum": [ + "organization", + "project", + "group", + "space_group" + ] }, - "startOfWeek": { - "allOf": [ + "inheritedRole": { + "anyOf": [ { - "$ref": "#/components/schemas/WeekDay" + "$ref": "#/components/schemas/OrganizationMemberRole" + }, + { + "$ref": "#/components/schemas/ProjectMemberRole" } - ], - "nullable": true + ] }, - "useSshTunnel": { - "type": "boolean" + "projectRole": { + "$ref": "#/components/schemas/ProjectMemberRole" }, - "sshTunnelHost": { - "type": "string" + "hasDirectAccess": { + "type": "boolean" }, - "sshTunnelPort": { - "type": "number", - "format": "double" + "role": { + "$ref": "#/components/schemas/SpaceMemberRole" }, - "sshTunnelUser": { + "email": { "type": "string" }, - "sshTunnelPublicKey": { + "lastName": { "type": "string" }, - "host": { + "firstName": { "type": "string" }, - "port": { - "type": "number", - "format": "double" - }, - "dbname": { + "userUuid": { "type": "string" + } + }, + "required": [ + "hasDirectAccess", + "role", + "email", + "lastName", + "firstName", + "userUuid" + ], + "type": "object" + }, + "SpaceSummary": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_Space.organizationUuid-or-projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-slug_" }, - "keepalivesIdle": { - "type": "number", - "format": "double" + { + "properties": { + "dashboardCount": { + "type": "number", + "format": "double" + }, + "chartCount": { + "type": "number", + "format": "double" + }, + "access": { + "items": { + "type": "string" + }, + "type": "array" + }, + "userAccess": { + "$ref": "#/components/schemas/SpaceShare" + } + }, + "required": [ + "dashboardCount", + "chartCount", + "access" + ], + "type": "object" + } + ] + }, + "ApiSpaceSummaryListResponse": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/SpaceSummary" + }, + "type": "array" }, - "sslmode": { + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + }, + "Pick_SpaceShare.userUuid-or-role_": { + "properties": { + "userUuid": { "type": "string" }, - "ra3Node": { - "type": "boolean" + "role": { + "$ref": "#/components/schemas/SpaceMemberRole" } }, "required": [ - "type", - "schema", - "host", - "port", - "dbname" + "userUuid", + "role" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "WarehouseTypes.POSTGRES": { - "enum": [ - "postgres" + "CreateSpace": { + "properties": { + "access": { + "items": { + "$ref": "#/components/schemas/Pick_SpaceShare.userUuid-or-role_" + }, + "type": "array" + }, + "isPrivate": { + "type": "boolean" + }, + "name": { + "type": "string" + } + }, + "required": [ + "name" ], - "type": "string" + "type": "object" + }, + "SpaceGroup": { + "properties": { + "spaceRole": { + "$ref": "#/components/schemas/SpaceMemberRole" + }, + "groupName": { + "type": "string" + }, + "groupUuid": { + "type": "string" + } + }, + "required": [ + "spaceRole", + "groupName", + "groupUuid" + ], + "type": "object" }, - "Pick_CreatePostgresCredentials.Exclude_keyofCreatePostgresCredentials.SensitiveCredentialsFieldNames__": { + "Pick_Dashboard.uuid-or-name-or-description-or-updatedAt-or-projectUuid-or-updatedByUser-or-organizationUuid-or-spaceUuid-or-views-or-firstViewedAt-or-pinnedListUuid-or-pinnedListOrder_": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.POSTGRES" - }, - "role": { + "name": { "type": "string" }, - "requireUserCredentials": { - "type": "boolean" - }, - "schema": { + "description": { "type": "string" }, - "threads": { - "type": "number", - "format": "double" - }, - "startOfWeek": { - "allOf": [ - { - "$ref": "#/components/schemas/WeekDay" - } - ], - "nullable": true - }, - "useSshTunnel": { - "type": "boolean" - }, - "sshTunnelHost": { + "uuid": { "type": "string" }, - "sshTunnelPort": { - "type": "number", - "format": "double" - }, - "sshTunnelUser": { + "spaceUuid": { "type": "string" }, - "sshTunnelPublicKey": { + "projectUuid": { "type": "string" }, - "host": { + "organizationUuid": { "type": "string" }, - "port": { - "type": "number", - "format": "double" + "pinnedListUuid": { + "type": "string", + "nullable": true }, - "dbname": { - "type": "string" + "updatedAt": { + "type": "string", + "format": "date-time" }, - "keepalivesIdle": { + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" + }, + "views": { "type": "number", "format": "double" }, - "sslmode": { - "type": "string" + "firstViewedAt": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "string" + } + ], + "nullable": true }, - "searchPath": { - "type": "string" + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true } }, "required": [ - "type", - "schema", - "host", - "port", - "dbname" + "name", + "uuid", + "spaceUuid", + "projectUuid", + "organizationUuid", + "pinnedListUuid", + "updatedAt", + "views", + "firstViewedAt", + "pinnedListOrder" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "WarehouseTypes.BIGQUERY": { - "enum": [ - "bigquery" - ], - "type": "string" + "DashboardBasicDetails": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_Dashboard.uuid-or-name-or-description-or-updatedAt-or-projectUuid-or-updatedByUser-or-organizationUuid-or-spaceUuid-or-views-or-firstViewedAt-or-pinnedListUuid-or-pinnedListOrder_" + }, + { + "properties": { + "validationErrors": { + "items": { + "$ref": "#/components/schemas/Pick_ValidationResponse.error-or-createdAt-or-validationId_" + }, + "type": "array" + } + }, + "type": "object" + } + ] }, - "Pick_CreateBigqueryCredentials.Exclude_keyofCreateBigqueryCredentials.SensitiveCredentialsFieldNames__": { + "Space": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.BIGQUERY" - }, - "requireUserCredentials": { - "type": "boolean" + "slug": { + "type": "string" }, - "threads": { + "pinnedListOrder": { "type": "number", - "format": "double" + "format": "double", + "nullable": true }, - "startOfWeek": { - "allOf": [ - { - "$ref": "#/components/schemas/WeekDay" - } - ], + "pinnedListUuid": { + "type": "string", "nullable": true }, - "project": { - "type": "string" + "groupsAccess": { + "items": { + "$ref": "#/components/schemas/SpaceGroup" + }, + "type": "array" }, - "dataset": { - "type": "string" + "access": { + "items": { + "$ref": "#/components/schemas/SpaceShare" + }, + "type": "array" }, - "timeoutSeconds": { - "type": "number", - "format": "double" + "dashboards": { + "items": { + "$ref": "#/components/schemas/DashboardBasicDetails" + }, + "type": "array" }, - "priority": { - "type": "string", - "enum": [ - "interactive", - "batch" - ] + "projectUuid": { + "type": "string" }, - "retries": { - "type": "number", - "format": "double" + "queries": { + "items": { + "$ref": "#/components/schemas/SpaceQuery" + }, + "type": "array" }, - "location": { + "isPrivate": { + "type": "boolean" + }, + "name": { "type": "string" }, - "maximumBytesBilled": { - "type": "number", - "format": "double" + "uuid": { + "type": "string" }, - "executionProject": { + "organizationUuid": { "type": "string" } }, "required": [ - "type", - "project", - "dataset" - ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "WarehouseTypes.DATABRICKS": { - "enum": [ - "databricks" + "slug", + "pinnedListOrder", + "pinnedListUuid", + "groupsAccess", + "access", + "dashboards", + "projectUuid", + "queries", + "isPrivate", + "name", + "uuid", + "organizationUuid" ], - "type": "string" + "type": "object" }, - "Pick_CreateDatabricksCredentials.Exclude_keyofCreateDatabricksCredentials.SensitiveCredentialsFieldNames__": { + "ApiSpaceResponse": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.DATABRICKS" - }, - "requireUserCredentials": { - "type": "boolean" - }, - "database": { - "type": "string" + "results": { + "$ref": "#/components/schemas/Space" }, - "startOfWeek": { - "allOf": [ - { - "$ref": "#/components/schemas/WeekDay" - } + "status": { + "type": "string", + "enum": [ + "ok" ], - "nullable": true - }, - "catalog": { - "type": "string" - }, - "serverHostName": { - "type": "string" - }, - "httpPath": { - "type": "string" + "nullable": false } }, "required": [ - "type", - "database", - "serverHostName", - "httpPath" - ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "WarehouseTypes.TRINO": { - "enum": [ - "trino" + "results", + "status" ], - "type": "string" + "type": "object" }, - "Pick_CreateTrinoCredentials.Exclude_keyofCreateTrinoCredentials.SensitiveCredentialsFieldNames__": { + "ProjectMemberProfile": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.TRINO" - }, - "requireUserCredentials": { - "type": "boolean" - }, - "schema": { + "lastName": { "type": "string" }, - "startOfWeek": { - "allOf": [ - { - "$ref": "#/components/schemas/WeekDay" - } - ], - "nullable": true + "firstName": { + "type": "string" }, - "host": { + "email": { "type": "string" }, - "port": { - "type": "number", - "format": "double" + "role": { + "$ref": "#/components/schemas/ProjectMemberRole" }, - "dbname": { + "projectUuid": { "type": "string" }, - "http_scheme": { + "userUuid": { "type": "string" } }, "required": [ - "type", - "schema", - "host", - "port", - "dbname", - "http_scheme" + "lastName", + "firstName", + "email", + "role", + "projectUuid", + "userUuid" ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "type": "object" }, - "WarehouseCredentials": { - "anyOf": [ - { - "$ref": "#/components/schemas/Pick_CreateSnowflakeCredentials.Exclude_keyofCreateSnowflakeCredentials.SensitiveCredentialsFieldNames__" - }, - { - "$ref": "#/components/schemas/Pick_CreateRedshiftCredentials.Exclude_keyofCreateRedshiftCredentials.SensitiveCredentialsFieldNames__" - }, - { - "$ref": "#/components/schemas/Pick_CreatePostgresCredentials.Exclude_keyofCreatePostgresCredentials.SensitiveCredentialsFieldNames__" - }, - { - "$ref": "#/components/schemas/Pick_CreateBigqueryCredentials.Exclude_keyofCreateBigqueryCredentials.SensitiveCredentialsFieldNames__" - }, - { - "$ref": "#/components/schemas/Pick_CreateDatabricksCredentials.Exclude_keyofCreateDatabricksCredentials.SensitiveCredentialsFieldNames__" + "ApiProjectAccessListResponse": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/ProjectMemberProfile" + }, + "type": "array" }, - { - "$ref": "#/components/schemas/Pick_CreateTrinoCredentials.Exclude_keyofCreateTrinoCredentials.SensitiveCredentialsFieldNames__" + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false } - ] - }, - "DbtProjectType.DBT": { - "enum": [ - "dbt" + }, + "required": [ + "results", + "status" ], - "type": "string" + "type": "object" }, - "DbtProjectEnvironmentVariable": { + "CreateProjectMember": { "properties": { - "value": { - "type": "string" + "sendEmail": { + "type": "boolean" }, - "key": { + "role": { + "$ref": "#/components/schemas/ProjectMemberRole" + }, + "email": { "type": "string" } }, "required": [ - "value", - "key" + "sendEmail", + "role", + "email" ], "type": "object" }, - "DbtLocalProjectConfig": { + "ApiGetProjectMemberResponse": { "properties": { - "type": { - "$ref": "#/components/schemas/DbtProjectType.DBT" - }, - "target": { - "type": "string" - }, - "environment": { - "items": { - "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" - }, - "type": "array" - }, - "profiles_dir": { - "type": "string" + "results": { + "$ref": "#/components/schemas/ProjectMemberProfile" }, - "project_dir": { - "type": "string" + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false } }, "required": [ - "type" + "results", + "status" ], - "type": "object", - "additionalProperties": true + "type": "object" }, - "DbtProjectType.DBT_CLOUD_IDE": { - "enum": [ - "dbt_cloud_ide" + "UpdateProjectMember": { + "properties": { + "role": { + "$ref": "#/components/schemas/ProjectMemberRole" + } + }, + "required": [ + "role" ], - "type": "string" + "type": "object" }, - "DbtCloudIDEProjectConfig": { + "ApiGetProjectGroupAccesses": { "properties": { - "type": { - "$ref": "#/components/schemas/DbtProjectType.DBT_CLOUD_IDE" - }, - "api_key": { - "type": "string" + "results": { + "items": { + "$ref": "#/components/schemas/ProjectGroupAccess" + }, + "type": "array" }, - "environment_id": { - "type": "string" + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false } }, "required": [ - "type", - "api_key", - "environment_id" + "results", + "status" ], + "type": "object" + }, + "Record_string.unknown_": { + "properties": {}, "type": "object", - "additionalProperties": true + "description": "Construct a type with a set of properties K of type T" }, - "DbtProjectType.GITHUB": { - "enum": [ - "github" - ], - "type": "string" + "Record_string._type-DimensionType--__": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" }, - "DbtGithubProjectConfig": { + "ApiSqlQueryResults": { "properties": { - "type": { - "$ref": "#/components/schemas/DbtProjectType.GITHUB" - }, - "target": { - "type": "string" - }, - "environment": { + "rows": { "items": { - "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" + "$ref": "#/components/schemas/Record_string.unknown_" }, "type": "array" }, - "personal_access_token": { - "type": "string" - }, - "repository": { - "type": "string" - }, - "branch": { - "type": "string" - }, - "project_sub_path": { - "type": "string" - }, - "host_domain": { - "type": "string" + "fields": { + "$ref": "#/components/schemas/Record_string._type-DimensionType--__" } }, "required": [ - "type", - "personal_access_token", - "repository", - "branch", - "project_sub_path" + "rows", + "fields" ], - "type": "object", - "additionalProperties": true + "type": "object" }, - "DbtProjectType.BITBUCKET": { + "DateGranularity": { "enum": [ - "bitbucket" + "Day", + "Week", + "Month", + "Quarter", + "Year" ], "type": "string" }, - "DbtBitBucketProjectConfig": { + "MetricQueryRequest": { "properties": { - "type": { - "$ref": "#/components/schemas/DbtProjectType.BITBUCKET" + "timezone": { + "type": "string" + }, + "metadata": { + "properties": { + "hasADateDimension": { + "$ref": "#/components/schemas/Pick_CompiledDimension.label-or-name_" + } + }, + "required": [ + "hasADateDimension" + ], + "type": "object" + }, + "granularity": { + "$ref": "#/components/schemas/DateGranularity" + }, + "customDimensions": { + "items": { + "$ref": "#/components/schemas/CustomDimension" + }, + "type": "array" }, - "target": { - "type": "string" + "csvLimit": { + "type": "number", + "format": "double" }, - "environment": { + "additionalMetrics": { "items": { - "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" + "$ref": "#/components/schemas/AdditionalMetric" }, "type": "array" }, - "username": { - "type": "string" + "tableCalculations": { + "items": { + "$ref": "#/components/schemas/TableCalculation" + }, + "type": "array" }, - "personal_access_token": { - "type": "string" + "limit": { + "type": "number", + "format": "double" }, - "repository": { - "type": "string" + "sorts": { + "items": { + "$ref": "#/components/schemas/SortField" + }, + "type": "array" }, - "branch": { - "type": "string" + "filters": { + "properties": { + "tableCalculations": {}, + "metrics": {}, + "dimensions": {} + }, + "type": "object" }, - "project_sub_path": { - "type": "string" + "metrics": { + "items": { + "$ref": "#/components/schemas/FieldId" + }, + "type": "array" }, - "host_domain": { + "dimensions": { + "items": { + "$ref": "#/components/schemas/FieldId" + }, + "type": "array" + }, + "exploreName": { "type": "string" } }, "required": [ - "type", - "username", - "personal_access_token", - "repository", - "branch", - "project_sub_path" - ], - "type": "object", - "additionalProperties": true - }, - "DbtProjectType.GITLAB": { - "enum": [ - "gitlab" + "tableCalculations", + "limit", + "sorts", + "filters", + "metrics", + "dimensions", + "exploreName" ], - "type": "string" + "type": "object" }, - "DbtGitlabProjectConfig": { + "CalculateTotalFromQuery": { "properties": { - "type": { - "$ref": "#/components/schemas/DbtProjectType.GITLAB" - }, - "target": { - "type": "string" - }, - "environment": { - "items": { - "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" - }, - "type": "array" - }, - "personal_access_token": { - "type": "string" - }, - "repository": { - "type": "string" - }, - "branch": { - "type": "string" - }, - "project_sub_path": { + "explore": { "type": "string" }, - "host_domain": { - "type": "string" + "metricQuery": { + "$ref": "#/components/schemas/MetricQueryRequest" } }, "required": [ - "type", - "personal_access_token", - "repository", - "branch", - "project_sub_path" + "explore", + "metricQuery" ], + "type": "object" + }, + "Record_string.number_": { + "properties": {}, "type": "object", - "additionalProperties": true + "description": "Construct a type with a set of properties K of type T" }, - "DbtProjectType.AZURE_DEVOPS": { - "enum": [ - "azure_devops" + "ApiCalculateTotalResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/Record_string.number_" + }, + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" ], - "type": "string" + "type": "object" }, - "DbtAzureDevOpsProjectConfig": { + "Pick_CreateRedshiftCredentials-or-CreatePostgresCredentials-or-CreateSnowflakeCredentials-or-CreateTrinoCredentials.type-or-user_": { "properties": { "type": { - "$ref": "#/components/schemas/DbtProjectType.AZURE_DEVOPS" - }, - "target": { - "type": "string" - }, - "environment": { - "items": { - "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" - }, - "type": "array" - }, - "personal_access_token": { - "type": "string" - }, - "organization": { - "type": "string" - }, - "project": { - "type": "string" - }, - "repository": { - "type": "string" - }, - "branch": { - "type": "string" + "$ref": "#/components/schemas/WarehouseTypes.SNOWFLAKE" }, - "project_sub_path": { + "user": { "type": "string" } }, "required": [ "type", - "personal_access_token", - "organization", - "project", - "repository", - "branch", - "project_sub_path" + "user" ], "type": "object", - "additionalProperties": true - }, - "DbtProjectType.NONE": { - "enum": [ - "none" - ], - "type": "string" + "description": "From T, pick a set of properties whose keys are in the union K" }, - "DbtNoneProjectConfig": { + "Pick_CreateBigqueryCredentials.type_": { "properties": { "type": { - "$ref": "#/components/schemas/DbtProjectType.NONE" - }, - "target": { - "type": "string" - }, - "environment": { - "items": { - "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" - }, - "type": "array" - }, - "hideRefreshButton": { - "type": "boolean" + "$ref": "#/components/schemas/WarehouseTypes.BIGQUERY" } }, "required": [ "type" ], "type": "object", - "additionalProperties": true + "description": "From T, pick a set of properties whose keys are in the union K" }, - "DbtProjectConfig": { - "anyOf": [ - { - "$ref": "#/components/schemas/DbtLocalProjectConfig" - }, - { - "$ref": "#/components/schemas/DbtCloudIDEProjectConfig" - }, - { - "$ref": "#/components/schemas/DbtGithubProjectConfig" - }, - { - "$ref": "#/components/schemas/DbtBitBucketProjectConfig" - }, - { - "$ref": "#/components/schemas/DbtGitlabProjectConfig" - }, - { - "$ref": "#/components/schemas/DbtAzureDevOpsProjectConfig" - }, - { - "$ref": "#/components/schemas/DbtNoneProjectConfig" + "Pick_CreateDatabricksCredentials.type_": { + "properties": { + "type": { + "$ref": "#/components/schemas/WarehouseTypes.DATABRICKS" } - ] + }, + "required": [ + "type" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "Project": { + "UserWarehouseCredentials": { "properties": { - "semanticLayerConnection": { - "$ref": "#/components/schemas/SemanticLayerConnection" - }, - "dbtVersion": { - "$ref": "#/components/schemas/SupportedDbtVersions" - }, - "upstreamProjectUuid": { - "type": "string" - }, - "pinnedListUuid": { - "type": "string" - }, - "warehouseConnection": { - "$ref": "#/components/schemas/WarehouseCredentials" + "credentials": { + "anyOf": [ + { + "$ref": "#/components/schemas/Pick_CreateRedshiftCredentials-or-CreatePostgresCredentials-or-CreateSnowflakeCredentials-or-CreateTrinoCredentials.type-or-user_" + }, + { + "$ref": "#/components/schemas/Pick_CreateBigqueryCredentials.type_" + }, + { + "$ref": "#/components/schemas/Pick_CreateDatabricksCredentials.type_" + } + ] }, - "dbtConnection": { - "$ref": "#/components/schemas/DbtProjectConfig" + "updatedAt": { + "type": "string", + "format": "date-time" }, - "type": { - "$ref": "#/components/schemas/ProjectType" + "createdAt": { + "type": "string", + "format": "date-time" }, "name": { "type": "string" }, - "projectUuid": { + "userUuid": { "type": "string" }, - "organizationUuid": { + "uuid": { "type": "string" } }, "required": [ - "dbtVersion", - "dbtConnection", - "type", + "credentials", + "updatedAt", + "createdAt", "name", - "projectUuid", - "organizationUuid" + "userUuid", + "uuid" ], "type": "object" }, - "ApiProjectResponse": { + "UpdateMetadata": { "properties": { - "results": { - "$ref": "#/components/schemas/Project" - }, - "status": { + "upstreamProjectUuid": { "type": "string", - "enum": [ - "ok" - ], - "nullable": false + "nullable": true } }, - "required": [ - "results", - "status" - ], "type": "object" }, - "Pick_SavedChart.uuid-or-name-or-description-or-spaceName-or-spaceUuid-or-projectUuid-or-organizationUuid-or-pinnedListUuid-or-dashboardUuid-or-dashboardName-or-slug_": { + "Partial_DbtSemanticLayerConnection_": { "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "uuid": { - "type": "string" + "type": { + "$ref": "#/components/schemas/SemanticLayerType.DBT" }, - "spaceName": { + "environmentId": { "type": "string" }, - "spaceUuid": { + "domain": { "type": "string" }, - "projectUuid": { + "token": { "type": "string" + } + }, + "type": "object", + "description": "Make all properties in T optional" + }, + "Partial_CubeSemanticLayerConnection_": { + "properties": { + "type": { + "$ref": "#/components/schemas/SemanticLayerType.CUBE" }, - "organizationUuid": { + "domain": { "type": "string" }, - "pinnedListUuid": { - "type": "string", - "nullable": true - }, - "dashboardUuid": { - "type": "string", - "nullable": true - }, - "dashboardName": { - "type": "string", - "nullable": true - }, - "slug": { + "token": { "type": "string" } }, - "required": [ - "name", - "uuid", - "spaceName", - "spaceUuid", - "projectUuid", - "organizationUuid", - "pinnedListUuid", - "dashboardUuid", - "dashboardName", - "slug" - ], "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "description": "Make all properties in T optional" }, - "ChartSummary": { + "SemanticLayerConnectionUpdate": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/Partial_DbtSemanticLayerConnection_" + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/SemanticLayerType.DBT" + } + }, + "required": [ + "type" + ], + "type": "object" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/Partial_CubeSemanticLayerConnection_" + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/SemanticLayerType.CUBE" + } + }, + "required": [ + "type" + ], + "type": "object" + } + ] + } + ] + }, + "DashboardBasicDetailsWithTileTypes": { "allOf": [ { - "$ref": "#/components/schemas/Pick_SavedChart.uuid-or-name-or-description-or-spaceName-or-spaceUuid-or-projectUuid-or-organizationUuid-or-pinnedListUuid-or-dashboardUuid-or-dashboardName-or-slug_" + "$ref": "#/components/schemas/DashboardBasicDetails" }, { "properties": { - "source": { - "$ref": "#/components/schemas/ChartSourceType" - }, - "chartKind": { - "$ref": "#/components/schemas/ChartKind" - }, - "chartType": { - "$ref": "#/components/schemas/ChartType" + "tileTypes": { + "items": { + "$ref": "#/components/schemas/DashboardTileTypes" + }, + "type": "array" } }, + "required": [ + "tileTypes" + ], "type": "object" } ] }, - "Pick_SavedChart.updatedAt-or-updatedByUser-or-pinnedListOrder_": { + "ApiGetDashboardsResponse": { "properties": { - "updatedAt": { - "type": "string", - "format": "date-time" + "results": { + "items": { + "$ref": "#/components/schemas/DashboardBasicDetailsWithTileTypes" + }, + "type": "array" }, - "updatedByUser": { - "$ref": "#/components/schemas/UpdatedByUser" + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false + } + }, + "required": [ + "results", + "status" + ], + "type": "object" + }, + "DuplicateDashboardParams": { + "properties": { + "dashboardDesc": { + "type": "string" }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true + "dashboardName": { + "type": "string" } }, "required": [ - "updatedAt", - "pinnedListOrder" + "dashboardDesc", + "dashboardName" + ], + "type": "object" + }, + "Pick_UpdatedByUser.userUuid_": { + "properties": { + "userUuid": { + "type": "string" + } + }, + "required": [ + "userUuid" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "ViewStatistics": { + "CreateDashboardTileBase": { "properties": { - "firstViewedAt": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "string" - } - ], - "nullable": true + "tabUuid": { + "type": "string" }, - "views": { + "w": { + "type": "number", + "format": "double" + }, + "h": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "x": { "type": "number", "format": "double" + }, + "type": { + "$ref": "#/components/schemas/DashboardTileTypes" + }, + "uuid": { + "type": "string" } }, "required": [ - "firstViewedAt", - "views" + "w", + "h", + "y", + "x", + "type" ], "type": "object" }, - "SpaceQuery": { + "CreateDashboardChartTile": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateDashboardTileBase" + }, + { + "$ref": "#/components/schemas/DashboardChartTileProperties" + } + ] + }, + "CreateDashboardMarkdownTile": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateDashboardTileBase" + }, + { + "$ref": "#/components/schemas/DashboardMarkdownTileProperties" + } + ] + }, + "CreateDashboardLoomTile": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateDashboardTileBase" + }, + { + "$ref": "#/components/schemas/DashboardLoomTileProperties" + } + ] + }, + "CreateDashboardSqlChartTile": { "allOf": [ { - "$ref": "#/components/schemas/ChartSummary" + "$ref": "#/components/schemas/CreateDashboardTileBase" }, { - "$ref": "#/components/schemas/Pick_SavedChart.updatedAt-or-updatedByUser-or-pinnedListOrder_" - }, + "$ref": "#/components/schemas/DashboardSqlChartTileProperties" + } + ] + }, + "CreateDashboardSemanticViewerChartTile": { + "allOf": [ { - "$ref": "#/components/schemas/ViewStatistics" + "$ref": "#/components/schemas/CreateDashboardTileBase" }, { - "properties": { - "validationErrors": { - "items": { - "$ref": "#/components/schemas/Pick_ValidationResponse.error-or-createdAt-or-validationId_" - }, - "type": "array" - } - }, - "type": "object" + "$ref": "#/components/schemas/DashboardSemanticViewerChartTileProperties" } ] }, - "ApiChartListResponse": { + "CreateDashboard": { "properties": { - "results": { + "tabs": { "items": { - "$ref": "#/components/schemas/SpaceQuery" + "$ref": "#/components/schemas/DashboardTab" }, "type": "array" }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" - }, - "ApiChartSummaryListResponse": { - "properties": { - "results": { + "spaceUuid": { + "type": "string" + }, + "updatedByUser": { + "$ref": "#/components/schemas/Pick_UpdatedByUser.userUuid_" + }, + "filters": { + "$ref": "#/components/schemas/DashboardFilters" + }, + "tiles": { "items": { - "$ref": "#/components/schemas/ChartSummary" + "anyOf": [ + { + "$ref": "#/components/schemas/CreateDashboardChartTile" + }, + { + "$ref": "#/components/schemas/CreateDashboardMarkdownTile" + }, + { + "$ref": "#/components/schemas/CreateDashboardLoomTile" + }, + { + "$ref": "#/components/schemas/CreateDashboardSqlChartTile" + }, + { + "$ref": "#/components/schemas/CreateDashboardSemanticViewerChartTile" + } + ] }, "type": "array" }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false + "description": { + "type": "string" + }, + "name": { + "type": "string" } }, "required": [ - "results", - "status" + "tabs", + "tiles", + "name" ], "type": "object" }, - "Pick_Space.organizationUuid-or-projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-slug_": { + "Dashboard": { "properties": { - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - }, - "projectUuid": { - "type": "string" - }, - "organizationUuid": { + "slug": { "type": "string" }, - "pinnedListUuid": { - "type": "string", + "access": { + "items": { + "$ref": "#/components/schemas/SpaceShare" + }, + "type": "array", "nullable": true }, - "slug": { - "type": "string" - }, "isPrivate": { - "type": "boolean" + "type": "boolean", + "nullable": true + }, + "tabs": { + "items": { + "$ref": "#/components/schemas/DashboardTab" + }, + "type": "array" }, "pinnedListOrder": { "type": "number", "format": "double", "nullable": true - } - }, - "required": [ - "name", - "uuid", - "projectUuid", - "organizationUuid", - "pinnedListUuid", - "slug", - "isPrivate", - "pinnedListOrder" - ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "SpaceMemberRole": { - "enum": [ - "viewer", - "editor", - "admin" - ], - "type": "string" - }, - "SpaceShare": { - "properties": { - "inheritedFrom": { + }, + "pinnedListUuid": { "type": "string", - "enum": [ - "organization", - "project", - "group", - "space_group" - ] + "nullable": true }, - "inheritedRole": { + "firstViewedAt": { "anyOf": [ { - "$ref": "#/components/schemas/OrganizationMemberRole" + "type": "string", + "format": "date-time" }, { - "$ref": "#/components/schemas/ProjectMemberRole" + "type": "string" } - ] + ], + "nullable": true }, - "projectRole": { - "$ref": "#/components/schemas/ProjectMemberRole" + "views": { + "type": "number", + "format": "double" }, - "hasDirectAccess": { - "type": "boolean" + "spaceName": { + "type": "string" }, - "role": { - "$ref": "#/components/schemas/SpaceMemberRole" + "spaceUuid": { + "type": "string" }, - "email": { + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" + }, + "filters": { + "$ref": "#/components/schemas/DashboardFilters" + }, + "tiles": { + "items": { + "$ref": "#/components/schemas/DashboardTile" + }, + "type": "array" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "description": { "type": "string" }, - "lastName": { + "name": { "type": "string" }, - "firstName": { + "uuid": { "type": "string" }, - "userUuid": { + "dashboardVersionId": { + "type": "number", + "format": "double" + }, + "projectUuid": { + "type": "string" + }, + "organizationUuid": { "type": "string" } }, "required": [ - "hasDirectAccess", - "role", - "email", - "lastName", - "firstName", - "userUuid" + "slug", + "access", + "isPrivate", + "tabs", + "pinnedListOrder", + "pinnedListUuid", + "firstViewedAt", + "views", + "spaceName", + "spaceUuid", + "filters", + "tiles", + "updatedAt", + "name", + "uuid", + "dashboardVersionId", + "projectUuid", + "organizationUuid" ], "type": "object" }, - "SpaceSummary": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_Space.organizationUuid-or-projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-slug_" - }, - { - "properties": { - "dashboardCount": { - "type": "number", - "format": "double" - }, - "chartCount": { - "type": "number", - "format": "double" - }, - "access": { - "items": { - "type": "string" - }, - "type": "array" - }, - "userAccess": { - "$ref": "#/components/schemas/SpaceShare" - } - }, - "required": [ - "dashboardCount", - "chartCount", - "access" - ], - "type": "object" - } - ] - }, - "ApiSpaceSummaryListResponse": { + "ApiCreateDashboardResponse": { "properties": { "results": { - "items": { - "$ref": "#/components/schemas/SpaceSummary" - }, - "type": "array" + "$ref": "#/components/schemas/Dashboard" }, "status": { "type": "string", @@ -12427,221 +16004,126 @@ ], "type": "object" }, - "Pick_SpaceShare.userUuid-or-role_": { + "Pick_Dashboard.uuid-or-name-or-description-or-spaceUuid_": { "properties": { - "userUuid": { + "name": { "type": "string" }, - "role": { - "$ref": "#/components/schemas/SpaceMemberRole" + "description": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "spaceUuid": { + "type": "string" } }, "required": [ - "userUuid", - "role" + "name", + "uuid", + "spaceUuid" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "CreateSpace": { + "ApiUpdateDashboardsResponse": { "properties": { - "access": { + "results": { "items": { - "$ref": "#/components/schemas/Pick_SpaceShare.userUuid-or-role_" + "$ref": "#/components/schemas/Dashboard" }, "type": "array" }, - "isPrivate": { - "type": "boolean" - }, - "name": { - "type": "string" + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false } }, "required": [ - "name" + "results", + "status" ], "type": "object" }, - "SpaceGroup": { + "UpdateSchedulerSettings": { "properties": { - "spaceRole": { - "$ref": "#/components/schemas/SpaceMemberRole" - }, - "groupName": { - "type": "string" - }, - "groupUuid": { + "schedulerTimezone": { "type": "string" } }, "required": [ - "spaceRole", - "groupName", - "groupUuid" + "schedulerTimezone" ], "type": "object" }, - "Pick_Dashboard.uuid-or-name-or-description-or-updatedAt-or-projectUuid-or-updatedByUser-or-organizationUuid-or-spaceUuid-or-views-or-firstViewedAt-or-pinnedListUuid-or-pinnedListOrder_": { + "Pick_LightdashUser.userUuid-or-firstName-or-lastName_": { "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "uuid": { - "type": "string" - }, - "spaceUuid": { + "userUuid": { "type": "string" }, - "projectUuid": { + "firstName": { "type": "string" }, - "organizationUuid": { + "lastName": { "type": "string" - }, - "pinnedListUuid": { - "type": "string", - "nullable": true - }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "updatedByUser": { - "$ref": "#/components/schemas/UpdatedByUser" - }, - "views": { - "type": "number", - "format": "double" - }, - "firstViewedAt": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "string" - } - ], - "nullable": true - }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true } }, "required": [ - "name", - "uuid", - "spaceUuid", - "projectUuid", - "organizationUuid", - "pinnedListUuid", - "updatedAt", - "views", - "firstViewedAt", - "pinnedListOrder" + "userUuid", + "firstName", + "lastName" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "DashboardBasicDetails": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_Dashboard.uuid-or-name-or-description-or-updatedAt-or-projectUuid-or-updatedByUser-or-organizationUuid-or-spaceUuid-or-views-or-firstViewedAt-or-pinnedListUuid-or-pinnedListOrder_" - }, - { - "properties": { - "validationErrors": { - "items": { - "$ref": "#/components/schemas/Pick_ValidationResponse.error-or-createdAt-or-validationId_" - }, - "type": "array" - } - }, - "type": "object" - } - ] - }, - "Space": { + "Tag": { "properties": { - "slug": { - "type": "string" - }, - "pinnedListOrder": { - "type": "number", - "format": "double", + "createdBy": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_LightdashUser.userUuid-or-firstName-or-lastName_" + } + ], "nullable": true }, - "pinnedListUuid": { + "createdAt": { "type": "string", - "nullable": true - }, - "groupsAccess": { - "items": { - "$ref": "#/components/schemas/SpaceGroup" - }, - "type": "array" - }, - "access": { - "items": { - "$ref": "#/components/schemas/SpaceShare" - }, - "type": "array" - }, - "dashboards": { - "items": { - "$ref": "#/components/schemas/DashboardBasicDetails" - }, - "type": "array" + "format": "date-time" }, - "projectUuid": { + "color": { "type": "string" }, - "queries": { - "items": { - "$ref": "#/components/schemas/SpaceQuery" - }, - "type": "array" - }, - "isPrivate": { - "type": "boolean" - }, "name": { "type": "string" }, - "uuid": { + "projectUuid": { "type": "string" }, - "organizationUuid": { + "tagUuid": { "type": "string" } }, "required": [ - "slug", - "pinnedListOrder", - "pinnedListUuid", - "groupsAccess", - "access", - "dashboards", - "projectUuid", - "queries", - "isPrivate", + "createdBy", + "createdAt", + "color", "name", - "uuid", - "organizationUuid" + "projectUuid", + "tagUuid" ], "type": "object" }, - "ApiSpaceResponse": { + "ApiGetTagsResponse": { "properties": { "results": { - "$ref": "#/components/schemas/Space" + "items": { + "$ref": "#/components/schemas/Tag" + }, + "type": "array" }, "status": { "type": "string", @@ -12657,44 +16139,34 @@ ], "type": "object" }, - "ProjectMemberProfile": { + "Pick_Tag.name-or-color_": { "properties": { - "lastName": { - "type": "string" - }, - "firstName": { - "type": "string" - }, - "email": { - "type": "string" - }, - "role": { - "$ref": "#/components/schemas/ProjectMemberRole" - }, - "projectUuid": { + "name": { "type": "string" }, - "userUuid": { + "color": { "type": "string" } }, "required": [ - "lastName", - "firstName", - "email", - "role", - "projectUuid", - "userUuid" + "name", + "color" ], - "type": "object" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "ApiProjectAccessListResponse": { + "ApiCreateTagResponse": { "properties": { "results": { - "items": { - "$ref": "#/components/schemas/ProjectMemberProfile" + "properties": { + "tagUuid": { + "type": "string" + } }, - "type": "array" + "required": [ + "tagUuid" + ], + "type": "object" }, "status": { "type": "string", @@ -12710,60 +16182,106 @@ ], "type": "object" }, - "CreateProjectMember": { + "Partial_Pick_DbTag.name-or-color__": { "properties": { - "sendEmail": { - "type": "boolean" + "name": { + "type": "string" }, - "role": { - "$ref": "#/components/schemas/ProjectMemberRole" + "color": { + "type": "string" + } + }, + "type": "object", + "description": "Make all properties in T optional" + }, + "Pick_SavedChart.name-or-description-or-tableName-or-metricQuery-or-chartConfig-or-tableConfig-or-slug-or-dashboardUuid-or-updatedAt_": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "dashboardUuid": { + "type": "string", + "nullable": true + }, + "slug": { + "type": "string" }, - "email": { + "tableName": { "type": "string" - } - }, - "required": [ - "sendEmail", - "role", - "email" - ], - "type": "object" - }, - "ApiGetProjectMemberResponse": { - "properties": { - "results": { - "$ref": "#/components/schemas/ProjectMemberProfile" }, - "status": { + "updatedAt": { "type": "string", - "enum": [ - "ok" + "format": "date-time" + }, + "metricQuery": { + "$ref": "#/components/schemas/MetricQuery" + }, + "chartConfig": { + "$ref": "#/components/schemas/ChartConfig" + }, + "tableConfig": { + "properties": { + "columnOrder": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "columnOrder" ], - "nullable": false + "type": "object" } }, "required": [ - "results", - "status" + "name", + "dashboardUuid", + "slug", + "tableName", + "updatedAt", + "metricQuery", + "chartConfig", + "tableConfig" ], - "type": "object" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "UpdateProjectMember": { - "properties": { - "role": { - "$ref": "#/components/schemas/ProjectMemberRole" + "ChartAsCode": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_SavedChart.name-or-description-or-tableName-or-metricQuery-or-chartConfig-or-tableConfig-or-slug-or-dashboardUuid-or-updatedAt_" + }, + { + "properties": { + "downloadedAt": { + "type": "string", + "format": "date-time" + }, + "spaceSlug": { + "type": "string" + }, + "version": { + "type": "number", + "format": "double" + } + }, + "required": [ + "spaceSlug", + "version" + ], + "type": "object" } - }, - "required": [ - "role" - ], - "type": "object" + ] }, - "ApiGetProjectGroupAccesses": { + "ApiChartAsCodeListResponse": { "properties": { "results": { "items": { - "$ref": "#/components/schemas/ProjectGroupAccess" + "$ref": "#/components/schemas/ChartAsCode" }, "type": "array" }, @@ -12781,154 +16299,227 @@ ], "type": "object" }, - "Record_string.unknown_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" - }, - "Record_string._type-DimensionType--__": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" - }, - "ApiSqlQueryResults": { + "Pick_Dashboard.name-or-description-or-updatedAt-or-filters-or-tabs-or-slug_": { "properties": { - "rows": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "filters": { + "$ref": "#/components/schemas/DashboardFilters" + }, + "tabs": { "items": { - "$ref": "#/components/schemas/Record_string.unknown_" + "$ref": "#/components/schemas/DashboardTab" }, "type": "array" - }, - "fields": { - "$ref": "#/components/schemas/Record_string._type-DimensionType--__" } }, "required": [ - "rows", - "fields" - ], - "type": "object" - }, - "DateGranularity": { - "enum": [ - "Day", - "Week", - "Month", - "Quarter", - "Year" + "name", + "slug", + "updatedAt", + "filters", + "tabs" ], - "type": "string" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "MetricQueryRequest": { + "Pick_DashboardTile.Exclude_keyofDashboardTile.properties__": { "properties": { - "timezone": { - "type": "string" - }, - "metadata": { - "properties": { - "hasADateDimension": { - "$ref": "#/components/schemas/Pick_CompiledDimension.label-or-name_" - } - }, - "required": [ - "hasADateDimension" - ], - "type": "object" - }, - "granularity": { - "$ref": "#/components/schemas/DateGranularity" + "type": { + "$ref": "#/components/schemas/DashboardTileTypes" }, - "customDimensions": { - "items": { - "$ref": "#/components/schemas/CustomDimension" - }, - "type": "array" + "uuid": { + "type": "string" }, - "csvLimit": { + "x": { "type": "number", "format": "double" }, - "additionalMetrics": { - "items": { - "$ref": "#/components/schemas/AdditionalMetric" - }, - "type": "array" + "y": { + "type": "number", + "format": "double" }, - "tableCalculations": { - "items": { - "$ref": "#/components/schemas/TableCalculation" - }, - "type": "array" + "h": { + "type": "number", + "format": "double" }, - "limit": { + "w": { "type": "number", "format": "double" }, - "sorts": { - "items": { - "$ref": "#/components/schemas/SortField" - }, - "type": "array" + "tabUuid": { + "type": "string" + } + }, + "required": [ + "type", + "x", + "y", + "h", + "w" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Pick_DashboardTile-at-properties.Exclude_keyofDashboardTile-at-properties.savedChartUuid-or-savedSqlUuid-or-savedSemanticViewerChartUuid__": { + "properties": { + "title": { + "type": "string" + } + }, + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "DashboardTileWithoutUuids": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_DashboardTile.Exclude_keyofDashboardTile.properties__" }, - "filters": { + { "properties": { - "tableCalculations": {}, - "metrics": {}, - "dimensions": {} + "properties": { + "$ref": "#/components/schemas/Pick_DashboardTile-at-properties.Exclude_keyofDashboardTile-at-properties.savedChartUuid-or-savedSqlUuid-or-savedSemanticViewerChartUuid__" + } }, + "required": [ + "properties" + ], "type": "object" + } + ] + }, + "DashboardAsCode": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_Dashboard.name-or-description-or-updatedAt-or-filters-or-tabs-or-slug_" }, - "metrics": { - "items": { - "$ref": "#/components/schemas/FieldId" + { + "properties": { + "downloadedAt": { + "type": "string", + "format": "date-time" + }, + "spaceSlug": { + "type": "string" + }, + "version": { + "type": "number", + "format": "double" + }, + "tiles": { + "items": { + "$ref": "#/components/schemas/DashboardTileWithoutUuids" + }, + "type": "array" + } }, - "type": "array" - }, - "dimensions": { + "required": [ + "spaceSlug", + "version", + "tiles" + ], + "type": "object" + } + ] + }, + "ApiDashboardAsCodeListResponse": { + "properties": { + "results": { "items": { - "$ref": "#/components/schemas/FieldId" + "$ref": "#/components/schemas/DashboardAsCode" }, "type": "array" }, - "exploreName": { - "type": "string" + "status": { + "type": "string", + "enum": [ + "ok" + ], + "nullable": false } }, "required": [ - "tableCalculations", - "limit", - "sorts", - "filters", - "metrics", - "dimensions", - "exploreName" + "results", + "status" ], "type": "object" }, - "CalculateTotalFromQuery": { + "Pick_ChartAsCode.Exclude_keyofChartAsCode.metricQuery-or-chartConfig__": { "properties": { - "explore": { + "name": { "type": "string" }, - "metricQuery": { - "$ref": "#/components/schemas/MetricQueryRequest" + "description": { + "type": "string" + }, + "dashboardUuid": { + "type": "string", + "nullable": true + }, + "slug": { + "type": "string" + }, + "tableName": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "tableConfig": { + "properties": { + "columnOrder": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "columnOrder" + ], + "type": "object" + }, + "version": { + "type": "number", + "format": "double" + }, + "spaceSlug": { + "type": "string" + }, + "downloadedAt": { + "type": "string", + "format": "date-time" } }, "required": [ - "explore", - "metricQuery" + "name", + "dashboardUuid", + "slug", + "tableName", + "updatedAt", + "tableConfig", + "version", + "spaceSlug" ], - "type": "object" - }, - "Record_string.number_": { - "properties": {}, "type": "object", - "description": "Construct a type with a set of properties K of type T" + "description": "From T, pick a set of properties whose keys are in the union K" }, - "ApiCalculateTotalResponse": { + "ApiChartAsCodeUpsertResponse": { "properties": { "results": { - "$ref": "#/components/schemas/Record_string.number_" + "$ref": "#/components/schemas/PromotionChanges" }, "status": { "type": "string", @@ -12944,96 +16535,64 @@ ], "type": "object" }, - "Pick_CreateRedshiftCredentials-or-CreatePostgresCredentials-or-CreateSnowflakeCredentials-or-CreateTrinoCredentials.type-or-user_": { + "Pick_DashboardAsCode.Exclude_keyofDashboardAsCode.filters-or-tiles-or-description__": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.SNOWFLAKE" + "name": { + "type": "string" }, - "user": { + "slug": { "type": "string" - } - }, - "required": [ - "type", - "user" - ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Pick_CreateBigqueryCredentials.type_": { - "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.BIGQUERY" - } - }, - "required": [ - "type" - ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Pick_CreateDatabricksCredentials.type_": { - "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.DATABRICKS" - } - }, - "required": [ - "type" - ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "UserWarehouseCredentials": { - "properties": { - "credentials": { - "anyOf": [ - { - "$ref": "#/components/schemas/Pick_CreateRedshiftCredentials-or-CreatePostgresCredentials-or-CreateSnowflakeCredentials-or-CreateTrinoCredentials.type-or-user_" - }, - { - "$ref": "#/components/schemas/Pick_CreateBigqueryCredentials.type_" - }, - { - "$ref": "#/components/schemas/Pick_CreateDatabricksCredentials.type_" - } - ] }, "updatedAt": { "type": "string", "format": "date-time" }, - "createdAt": { - "type": "string", - "format": "date-time" + "tabs": { + "items": { + "$ref": "#/components/schemas/DashboardTab" + }, + "type": "array" }, - "name": { - "type": "string" + "version": { + "type": "number", + "format": "double" }, - "userUuid": { + "spaceSlug": { "type": "string" }, - "uuid": { - "type": "string" + "downloadedAt": { + "type": "string", + "format": "date-time" } }, "required": [ - "credentials", - "updatedAt", - "createdAt", "name", - "userUuid", - "uuid" + "slug", + "updatedAt", + "tabs", + "version", + "spaceSlug" ], - "type": "object" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "UpdateMetadata": { + "ApiDashboardAsCodeUpsertResponse": { "properties": { - "upstreamProjectUuid": { + "results": { + "$ref": "#/components/schemas/PromotionChanges" + }, + "status": { "type": "string", - "nullable": true + "enum": [ + "ok" + ], + "nullable": false } }, + "required": [ + "results", + "status" + ], "type": "object" }, "Record_string.Item-or-AdditionalMetric_": { @@ -13095,26 +16654,6 @@ ], "type": "object" }, - "Pick_LightdashUser.userUuid-or-firstName-or-lastName_": { - "properties": { - "userUuid": { - "type": "string" - }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - } - }, - "required": [ - "userUuid", - "firstName", - "lastName" - ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, "Pick_ChartVersion.chartUuid-or-versionUuid-or-createdAt-or-createdBy_": { "properties": { "createdAt": { @@ -13434,12 +16973,14 @@ "uploadGsheets", "downloadCsv", "uploadGsheetFromQuery", + "createProjectWithCompile", "compileProject", "testAndCompileProject", "validateProject", "sqlRunner", "sqlRunnerPivotQuery", - "semanticLayer" + "semanticLayer", + "indexCatalog" ] } }, @@ -13569,6 +17110,9 @@ }, "SchedulerBase": { "properties": { + "includeLinks": { + "type": "boolean" + }, "notificationFrequency": { "$ref": "#/components/schemas/NotificationFrequency" }, @@ -13592,6 +17136,9 @@ "type": "string", "nullable": true }, + "timezone": { + "type": "string" + }, "cron": { "type": "string" }, @@ -13620,6 +17167,7 @@ } }, "required": [ + "includeLinks", "enabled", "options", "dashboardUuid", @@ -14495,8 +18043,21 @@ "role": { "$ref": "#/components/schemas/OrganizationMemberRole" }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, "isActive": { - "type": "boolean" + "type": "boolean", + "description": "Whether the user can login" + }, + "isPending": { + "type": "boolean", + "description": "Whether the user doesn't have an authentication method (password or openId)" } }, "required": [ @@ -14506,6 +18067,8 @@ "isTrackingAnonymized", "isMarketingOptedIn", "isSetupComplete", + "createdAt", + "updatedAt", "isActive" ], "type": "object", @@ -14979,6 +18542,62 @@ ], "type": "object" }, + "PersonalAccessToken": { + "properties": { + "description": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "rotatedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastUsedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "uuid": { + "type": "string" + } + }, + "required": [ + "description", + "expiresAt", + "rotatedAt", + "lastUsedAt", + "createdAt", + "uuid" + ], + "type": "object" + }, + "PersonalAccessTokenWithToken": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonalAccessToken" + }, + { + "properties": { + "token": { + "type": "string" + } + }, + "required": [ + "token" + ], + "type": "object" + } + ] + }, "ValidationSourceType": { "enum": [ "chart", diff --git a/dev/schemas/split-swagger/components/schemas/ApiCreateCustomExplore.json b/dev/schemas/split-swagger/components/schemas/ApiCreateCustomExplore.json deleted file mode 100644 index 4395f5a..0000000 --- a/dev/schemas/split-swagger/components/schemas/ApiCreateCustomExplore.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "properties": { - "results": { - "$ref": "./Pick_Explore.name_.json" - }, - "status": { - "type": "string", - "enum": [ - "ok" - ], - "nullable": false - } - }, - "required": [ - "results", - "status" - ], - "type": "object" -} diff --git a/dev/schemas/split-swagger/components/schemas/ApiGroupListResponse.json b/dev/schemas/split-swagger/components/schemas/ApiGroupListResponse.json index 0df4ca6..5d7a08c 100644 --- a/dev/schemas/split-swagger/components/schemas/ApiGroupListResponse.json +++ b/dev/schemas/split-swagger/components/schemas/ApiGroupListResponse.json @@ -1,20 +1,7 @@ { "properties": { "results": { - "anyOf": [ - { - "items": { - "$ref": "./Group.json" - }, - "type": "array" - }, - { - "items": { - "$ref": "./GroupWithMembers.json" - }, - "type": "array" - } - ] + "$ref": "./KnexPaginatedData_Group-Array-or-GroupWithMembers-Array_.json" }, "status": { "type": "string", diff --git a/dev/schemas/split-swagger/components/schemas/ApiSqlRunnerPivotQueryPayload.json b/dev/schemas/split-swagger/components/schemas/ApiSqlRunnerPivotQueryPayload.json index e3c9432..5d8f729 100644 --- a/dev/schemas/split-swagger/components/schemas/ApiSqlRunnerPivotQueryPayload.json +++ b/dev/schemas/split-swagger/components/schemas/ApiSqlRunnerPivotQueryPayload.json @@ -40,6 +40,9 @@ }, "indexColumn": { "$ref": "./PivotIndexColum.json" + }, + "savedSqlUuid": { + "type": "string" } }, "required": [ diff --git a/dev/schemas/split-swagger/components/schemas/CartesianChartDisplay.json b/dev/schemas/split-swagger/components/schemas/CartesianChartDisplay.json index 814ffcb..a50532a 100644 --- a/dev/schemas/split-swagger/components/schemas/CartesianChartDisplay.json +++ b/dev/schemas/split-swagger/components/schemas/CartesianChartDisplay.json @@ -33,13 +33,20 @@ "properties": {}, "additionalProperties": { "properties": { + "whichYAxis": { + "type": "number", + "format": "double" + }, + "valueLabelPosition": { + "$ref": "./ValueLabelPositionOptions.json" + }, "type": { "anyOf": [ { - "$ref": "./ChartKind.LINE.json" + "$ref": "./CartesianSeriesType.LINE.json" }, { - "$ref": "./ChartKind.VERTICAL_BAR.json" + "$ref": "./CartesianSeriesType.BAR.json" } ] }, diff --git a/dev/schemas/split-swagger/components/schemas/CatalogField.json b/dev/schemas/split-swagger/components/schemas/CatalogField.json index 99123be..da3aabd 100644 --- a/dev/schemas/split-swagger/components/schemas/CatalogField.json +++ b/dev/schemas/split-swagger/components/schemas/CatalogField.json @@ -8,6 +8,24 @@ }, { "properties": { + "icon": { + "allOf": [ + { + "$ref": "./CatalogItemIcon.json" + } + ], + "nullable": true + }, + "chartUsage": { + "type": "number", + "format": "double" + }, + "categories": { + "items": { + "$ref": "./Pick_Tag.name-or-color-or-tagUuid_.json" + }, + "type": "array" + }, "tags": { "items": { "type": "string" @@ -25,11 +43,17 @@ }, "type": { "$ref": "./CatalogType.Field.json" + }, + "catalogSearchUuid": { + "type": "string" } }, "required": [ + "icon", + "categories", "tableName", - "type" + "type", + "catalogSearchUuid" ], "type": "object" } diff --git a/dev/schemas/split-swagger/components/schemas/CatalogTable.json b/dev/schemas/split-swagger/components/schemas/CatalogTable.json index 733511a..b809252 100644 --- a/dev/schemas/split-swagger/components/schemas/CatalogTable.json +++ b/dev/schemas/split-swagger/components/schemas/CatalogTable.json @@ -5,12 +5,30 @@ }, { "properties": { + "icon": { + "allOf": [ + { + "$ref": "./CatalogItemIcon.json" + } + ], + "nullable": true + }, + "chartUsage": { + "type": "number", + "format": "double" + }, "joinedTables": { "items": { "$ref": "./CompiledExploreJoin.json" }, "type": "array" }, + "categories": { + "items": { + "$ref": "./Pick_Tag.name-or-color-or-tagUuid_.json" + }, + "type": "array" + }, "tags": { "items": { "type": "string" @@ -28,10 +46,16 @@ "$ref": "./InlineError.json" }, "type": "array" + }, + "catalogSearchUuid": { + "type": "string" } }, "required": [ - "type" + "icon", + "categories", + "type", + "catalogSearchUuid" ], "type": "object" } diff --git a/dev/schemas/split-swagger/components/schemas/CreateCustomExplorePayload.json b/dev/schemas/split-swagger/components/schemas/CreateCustomExplorePayload.json deleted file mode 100644 index 69af0ea..0000000 --- a/dev/schemas/split-swagger/components/schemas/CreateCustomExplorePayload.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "properties": { - "columns": { - "items": { - "$ref": "./VizColumn.json" - }, - "type": "array" - }, - "sql": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "columns", - "sql", - "name" - ], - "type": "object" -} diff --git a/dev/schemas/split-swagger/components/schemas/CreateSqlChart.json b/dev/schemas/split-swagger/components/schemas/CreateSqlChart.json index 21bd7f4..08eb59c 100644 --- a/dev/schemas/split-swagger/components/schemas/CreateSqlChart.json +++ b/dev/schemas/split-swagger/components/schemas/CreateSqlChart.json @@ -4,7 +4,7 @@ "type": "string" }, "config": { - "$ref": "./VizChartConfig.json" + "$ref": "./AllVizChartConfig.json" }, "limit": { "type": "number", diff --git a/dev/schemas/split-swagger/components/schemas/DashboardChartTileProperties.json b/dev/schemas/split-swagger/components/schemas/DashboardChartTileProperties.json index 6f217f4..03dc433 100644 --- a/dev/schemas/split-swagger/components/schemas/DashboardChartTileProperties.json +++ b/dev/schemas/split-swagger/components/schemas/DashboardChartTileProperties.json @@ -2,6 +2,9 @@ "properties": { "properties": { "properties": { + "chartSlug": { + "type": "string" + }, "lastVersionChartKind": { "allOf": [ { diff --git a/dev/schemas/split-swagger/components/schemas/DashboardSemanticViewerChartTileProperties.json b/dev/schemas/split-swagger/components/schemas/DashboardSemanticViewerChartTileProperties.json index 5dbb456..650df1c 100644 --- a/dev/schemas/split-swagger/components/schemas/DashboardSemanticViewerChartTileProperties.json +++ b/dev/schemas/split-swagger/components/schemas/DashboardSemanticViewerChartTileProperties.json @@ -2,6 +2,9 @@ "properties": { "properties": { "properties": { + "chartSlug": { + "type": "string" + }, "hideTitle": { "type": "boolean" }, diff --git a/dev/schemas/split-swagger/components/schemas/DashboardSqlChartTileProperties.json b/dev/schemas/split-swagger/components/schemas/DashboardSqlChartTileProperties.json index bd17a29..4a28517 100644 --- a/dev/schemas/split-swagger/components/schemas/DashboardSqlChartTileProperties.json +++ b/dev/schemas/split-swagger/components/schemas/DashboardSqlChartTileProperties.json @@ -2,6 +2,9 @@ "properties": { "properties": { "properties": { + "chartSlug": { + "type": "string" + }, "hideTitle": { "type": "boolean" }, diff --git a/dev/schemas/split-swagger/components/schemas/Explore.json b/dev/schemas/split-swagger/components/schemas/Explore.json index 897af5c..fc56094 100644 --- a/dev/schemas/split-swagger/components/schemas/Explore.json +++ b/dev/schemas/split-swagger/components/schemas/Explore.json @@ -1,5 +1,8 @@ { "properties": { + "type": { + "$ref": "./ExploreType.json" + }, "sqlPath": { "type": "string" }, diff --git a/dev/schemas/split-swagger/components/schemas/Group.json b/dev/schemas/split-swagger/components/schemas/Group.json index 49f215c..a146f23 100644 --- a/dev/schemas/split-swagger/components/schemas/Group.json +++ b/dev/schemas/split-swagger/components/schemas/Group.json @@ -4,6 +4,21 @@ "type": "string", "description": "The UUID of the organization that the group belongs to" }, + "updatedByUserUuid": { + "type": "string", + "nullable": true, + "description": "The UUID of the user that last updated the group" + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "description": "The time that the group was last updated" + }, + "createdByUserUuid": { + "type": "string", + "nullable": true, + "description": "The UUID of the user that created the group" + }, "createdAt": { "type": "string", "format": "date-time", @@ -20,6 +35,9 @@ }, "required": [ "organizationUuid", + "updatedByUserUuid", + "updatedAt", + "createdByUserUuid", "createdAt", "name", "uuid" diff --git a/dev/schemas/split-swagger/components/schemas/KnexPaginatedData_OrganizationMemberProfile-Array_.json b/dev/schemas/split-swagger/components/schemas/KnexPaginatedData_OrganizationMemberProfile-Array_.json index 8939df2..e565433 100644 --- a/dev/schemas/split-swagger/components/schemas/KnexPaginatedData_OrganizationMemberProfile-Array_.json +++ b/dev/schemas/split-swagger/components/schemas/KnexPaginatedData_OrganizationMemberProfile-Array_.json @@ -7,12 +7,17 @@ }, { "properties": { + "totalResults": { + "type": "number", + "format": "double" + }, "totalPageCount": { "type": "number", "format": "double" } }, "required": [ + "totalResults", "totalPageCount" ], "type": "object" diff --git a/dev/schemas/split-swagger/components/schemas/KnexPaginatedData_SummaryContent-Array_.json b/dev/schemas/split-swagger/components/schemas/KnexPaginatedData_SummaryContent-Array_.json index 26cd690..4463c8c 100644 --- a/dev/schemas/split-swagger/components/schemas/KnexPaginatedData_SummaryContent-Array_.json +++ b/dev/schemas/split-swagger/components/schemas/KnexPaginatedData_SummaryContent-Array_.json @@ -7,12 +7,17 @@ }, { "properties": { + "totalResults": { + "type": "number", + "format": "double" + }, "totalPageCount": { "type": "number", "format": "double" } }, "required": [ + "totalResults", "totalPageCount" ], "type": "object" diff --git a/dev/schemas/split-swagger/components/schemas/LightdashUser.json b/dev/schemas/split-swagger/components/schemas/LightdashUser.json index 5edf6f5..fdc90b3 100644 --- a/dev/schemas/split-swagger/components/schemas/LightdashUser.json +++ b/dev/schemas/split-swagger/components/schemas/LightdashUser.json @@ -34,8 +34,21 @@ "role": { "$ref": "./OrganizationMemberRole.json" }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, "isActive": { - "type": "boolean" + "type": "boolean", + "description": "Whether the user can login" + }, + "isPending": { + "type": "boolean", + "description": "Whether the user doesn't have an authentication method (password or openId)" } }, "required": [ @@ -45,6 +58,8 @@ "isTrackingAnonymized", "isMarketingOptedIn", "isSetupComplete", + "createdAt", + "updatedAt", "isActive" ], "type": "object", diff --git a/dev/schemas/split-swagger/components/schemas/OrganizationMemberProfile.json b/dev/schemas/split-swagger/components/schemas/OrganizationMemberProfile.json index 08beae0..6ff8f66 100644 --- a/dev/schemas/split-swagger/components/schemas/OrganizationMemberProfile.json +++ b/dev/schemas/split-swagger/components/schemas/OrganizationMemberProfile.json @@ -1,12 +1,16 @@ { "properties": { + "isPending": { + "type": "boolean", + "description": "Whether the user doesn't have an authentication method (password or openId)" + }, "isInviteExpired": { "type": "boolean", "description": "Whether the user's invite to the organization has expired" }, "isActive": { "type": "boolean", - "description": "Whether the user has accepted their invite to the organization" + "description": "Whether the user can login" }, "role": { "$ref": "./OrganizationMemberRole.json", @@ -25,6 +29,14 @@ "firstName": { "type": "string" }, + "userUpdatedAt": { + "type": "string", + "format": "date-time" + }, + "userCreatedAt": { + "type": "string", + "format": "date-time" + }, "userUuid": { "type": "string", "description": "Unique identifier for the user", @@ -38,6 +50,8 @@ "email", "lastName", "firstName", + "userUpdatedAt", + "userCreatedAt", "userUuid" ], "type": "object", diff --git a/dev/schemas/split-swagger/components/schemas/OrganizationProject.json b/dev/schemas/split-swagger/components/schemas/OrganizationProject.json index 487ea74..e38a156 100644 --- a/dev/schemas/split-swagger/components/schemas/OrganizationProject.json +++ b/dev/schemas/split-swagger/components/schemas/OrganizationProject.json @@ -6,6 +6,14 @@ "warehouseType": { "$ref": "./WarehouseTypes.json" }, + "upstreamProjectUuid": { + "type": "string", + "nullable": true + }, + "createdByUserUuid": { + "type": "string", + "nullable": true + }, "type": { "$ref": "./ProjectType.json" }, @@ -21,6 +29,8 @@ "required": [ "requireUserCredentials", "warehouseType", + "upstreamProjectUuid", + "createdByUserUuid", "type", "name", "projectUuid" diff --git a/dev/schemas/split-swagger/components/schemas/Pick_Explore.SummaryExploreFields_.json b/dev/schemas/split-swagger/components/schemas/Pick_Explore.SummaryExploreFields_.json index 000c9ac..ac41f03 100644 --- a/dev/schemas/split-swagger/components/schemas/Pick_Explore.SummaryExploreFields_.json +++ b/dev/schemas/split-swagger/components/schemas/Pick_Explore.SummaryExploreFields_.json @@ -9,6 +9,9 @@ "groupLabel": { "type": "string" }, + "type": { + "$ref": "./ExploreType.json" + }, "tags": { "items": { "type": "string" diff --git a/dev/schemas/split-swagger/components/schemas/Pick_ExploreError.SummaryExploreErrorFields_.json b/dev/schemas/split-swagger/components/schemas/Pick_ExploreError.SummaryExploreErrorFields_.json index 880e3d8..39dbfe4 100644 --- a/dev/schemas/split-swagger/components/schemas/Pick_ExploreError.SummaryExploreErrorFields_.json +++ b/dev/schemas/split-swagger/components/schemas/Pick_ExploreError.SummaryExploreErrorFields_.json @@ -9,6 +9,9 @@ "groupLabel": { "type": "string" }, + "type": { + "$ref": "./ExploreType.json" + }, "tags": { "items": { "type": "string" diff --git a/dev/schemas/split-swagger/components/schemas/Pick_SavedChart.Exclude_keyofSavedChart.isPrivate-or-access__.json b/dev/schemas/split-swagger/components/schemas/Pick_SavedChart.Exclude_keyofSavedChart.isPrivate-or-access__.json index 716f06d..6e486b6 100644 --- a/dev/schemas/split-swagger/components/schemas/Pick_SavedChart.Exclude_keyofSavedChart.isPrivate-or-access__.json +++ b/dev/schemas/split-swagger/components/schemas/Pick_SavedChart.Exclude_keyofSavedChart.isPrivate-or-access__.json @@ -36,6 +36,9 @@ "slug": { "type": "string" }, + "tableName": { + "type": "string" + }, "updatedAt": { "type": "string", "format": "date-time" @@ -48,9 +51,6 @@ "format": "double", "nullable": true }, - "tableName": { - "type": "string" - }, "metricQuery": { "$ref": "./MetricQuery.json" }, @@ -103,9 +103,9 @@ "dashboardUuid", "dashboardName", "slug", + "tableName", "updatedAt", "pinnedListOrder", - "tableName", "metricQuery", "chartConfig", "tableConfig", diff --git a/dev/schemas/split-swagger/components/schemas/Project.json b/dev/schemas/split-swagger/components/schemas/Project.json index 82dc07c..ed52760 100644 --- a/dev/schemas/split-swagger/components/schemas/Project.json +++ b/dev/schemas/split-swagger/components/schemas/Project.json @@ -1,5 +1,12 @@ { "properties": { + "createdByUserUuid": { + "type": "string", + "nullable": true + }, + "schedulerTimezone": { + "type": "string" + }, "semanticLayerConnection": { "$ref": "./SemanticLayerConnection.json" }, @@ -32,6 +39,8 @@ } }, "required": [ + "createdByUserUuid", + "schedulerTimezone", "dbtVersion", "dbtConnection", "type", diff --git a/dev/schemas/split-swagger/components/schemas/SchedulerBase.json b/dev/schemas/split-swagger/components/schemas/SchedulerBase.json index 59d94af..b028ccb 100644 --- a/dev/schemas/split-swagger/components/schemas/SchedulerBase.json +++ b/dev/schemas/split-swagger/components/schemas/SchedulerBase.json @@ -1,5 +1,8 @@ { "properties": { + "includeLinks": { + "type": "boolean" + }, "notificationFrequency": { "$ref": "./NotificationFrequency.json" }, @@ -23,6 +26,9 @@ "type": "string", "nullable": true }, + "timezone": { + "type": "string" + }, "cron": { "type": "string" }, @@ -51,6 +57,7 @@ } }, "required": [ + "includeLinks", "enabled", "options", "dashboardUuid", diff --git a/dev/schemas/split-swagger/components/schemas/SchedulerLog.json b/dev/schemas/split-swagger/components/schemas/SchedulerLog.json index 8d25a48..bad3ad5 100644 --- a/dev/schemas/split-swagger/components/schemas/SchedulerLog.json +++ b/dev/schemas/split-swagger/components/schemas/SchedulerLog.json @@ -43,12 +43,14 @@ "uploadGsheets", "downloadCsv", "uploadGsheetFromQuery", + "createProjectWithCompile", "compileProject", "testAndCompileProject", "validateProject", "sqlRunner", "sqlRunnerPivotQuery", - "semanticLayer" + "semanticLayer", + "indexCatalog" ] } }, diff --git a/dev/schemas/split-swagger/components/schemas/SemanticLayerField.json b/dev/schemas/split-swagger/components/schemas/SemanticLayerField.json index 8677acc..855cd89 100644 --- a/dev/schemas/split-swagger/components/schemas/SemanticLayerField.json +++ b/dev/schemas/split-swagger/components/schemas/SemanticLayerField.json @@ -13,7 +13,7 @@ "type": "array" }, "aggType": { - "type": "string" + "$ref": "./VizAggregationOptions.json" }, "visible": { "type": "boolean" diff --git a/dev/schemas/split-swagger/components/schemas/SemanticLayerQuery.json b/dev/schemas/split-swagger/components/schemas/SemanticLayerQuery.json index 3d3b98f..3d75b97 100644 --- a/dev/schemas/split-swagger/components/schemas/SemanticLayerQuery.json +++ b/dev/schemas/split-swagger/components/schemas/SemanticLayerQuery.json @@ -1,5 +1,35 @@ { "properties": { + "customMetrics": { + "items": { + "allOf": [ + { + "$ref": "./Pick_SemanticLayerField.name-or-aggType_.json" + }, + { + "properties": { + "baseDimension": { + "type": "string" + } + }, + "type": "object" + } + ] + }, + "type": "array" + }, + "sql": { + "type": "string" + }, + "filters": { + "items": { + "$ref": "./SemanticLayerFilter.json" + }, + "type": "array" + }, + "pivot": { + "$ref": "./SemanticLayerPivot.json" + }, "timezone": { "type": "string" }, @@ -7,21 +37,12 @@ "type": "number", "format": "double" }, - "pivot": { - "$ref": "./SemanticLayerPivot.json" - }, "sortBy": { "items": { "$ref": "./SemanticLayerSortBy.json" }, "type": "array" }, - "filters": { - "items": { - "$ref": "./SemanticLayerFilter.json" - }, - "type": "array" - }, "metrics": { "items": { "$ref": "./Pick_SemanticLayerField.name_.json" @@ -42,8 +63,8 @@ } }, "required": [ - "sortBy", "filters", + "sortBy", "metrics", "timeDimensions", "dimensions" diff --git a/dev/schemas/split-swagger/components/schemas/SemanticLayerSortBy.json b/dev/schemas/split-swagger/components/schemas/SemanticLayerSortBy.json index cf48947..ef7f576 100644 --- a/dev/schemas/split-swagger/components/schemas/SemanticLayerSortBy.json +++ b/dev/schemas/split-swagger/components/schemas/SemanticLayerSortBy.json @@ -6,7 +6,7 @@ { "properties": { "direction": { - "$ref": "./SemanticLayerSortByDirection.json" + "$ref": "./SortByDirection.json" } }, "required": [ diff --git a/dev/schemas/split-swagger/components/schemas/SemanticLayerSortByDirection.json b/dev/schemas/split-swagger/components/schemas/SemanticLayerSortByDirection.json deleted file mode 100644 index 479d0cf..0000000 --- a/dev/schemas/split-swagger/components/schemas/SemanticLayerSortByDirection.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "enum": [ - "ASC", - "DESC" - ], - "type": "string" -} diff --git a/dev/schemas/split-swagger/components/schemas/SemanticViewerChartCreate.json b/dev/schemas/split-swagger/components/schemas/SemanticViewerChartCreate.json index e6f51fb..5024a6d 100644 --- a/dev/schemas/split-swagger/components/schemas/SemanticViewerChartCreate.json +++ b/dev/schemas/split-swagger/components/schemas/SemanticViewerChartCreate.json @@ -4,7 +4,7 @@ "type": "string" }, "config": { - "$ref": "./VizChartConfig.json" + "$ref": "./AllVizChartConfig.json" }, "semanticLayerQuery": { "$ref": "./SemanticLayerQuery.json" diff --git a/dev/schemas/split-swagger/components/schemas/SemanticViewerChartUpdate.json b/dev/schemas/split-swagger/components/schemas/SemanticViewerChartUpdate.json index 1704f9c..32f6872 100644 --- a/dev/schemas/split-swagger/components/schemas/SemanticViewerChartUpdate.json +++ b/dev/schemas/split-swagger/components/schemas/SemanticViewerChartUpdate.json @@ -6,7 +6,7 @@ "$ref": "./ChartKind.json" }, "config": { - "$ref": "./VizChartConfig.json" + "$ref": "./AllVizChartConfig.json" }, "semanticLayerQuery": { "$ref": "./SemanticLayerQuery.json" diff --git a/dev/schemas/split-swagger/components/schemas/SqlRunnerBody.json b/dev/schemas/split-swagger/components/schemas/SqlRunnerBody.json index 5a4c16b..0c5bf85 100644 --- a/dev/schemas/split-swagger/components/schemas/SqlRunnerBody.json +++ b/dev/schemas/split-swagger/components/schemas/SqlRunnerBody.json @@ -1,11 +1,5 @@ { "properties": { - "uuid": { - "type": "string" - }, - "slug": { - "type": "string" - }, "limit": { "type": "number", "format": "double" diff --git a/dev/schemas/split-swagger/components/schemas/TableBase.json b/dev/schemas/split-swagger/components/schemas/TableBase.json index cec4a2d..0576821 100644 --- a/dev/schemas/split-swagger/components/schemas/TableBase.json +++ b/dev/schemas/split-swagger/components/schemas/TableBase.json @@ -1,5 +1,8 @@ { "properties": { + "defaultTimeDimension": { + "$ref": "./DefaultTimeDimension.json" + }, "groupDetails": { "$ref": "./Record_string.GroupType_.json" }, diff --git a/dev/schemas/split-swagger/components/schemas/UpdateVersionedSqlChart.json b/dev/schemas/split-swagger/components/schemas/UpdateVersionedSqlChart.json index d18206a..a06d92e 100644 --- a/dev/schemas/split-swagger/components/schemas/UpdateVersionedSqlChart.json +++ b/dev/schemas/split-swagger/components/schemas/UpdateVersionedSqlChart.json @@ -1,7 +1,7 @@ { "properties": { "config": { - "$ref": "./VizChartConfig.json" + "$ref": "./AllVizChartConfig.json" }, "limit": { "type": "number", diff --git a/dev/schemas/split-swagger/components/schemas/VizBarChartConfig.json b/dev/schemas/split-swagger/components/schemas/VizBarChartConfig.json index 95fb92b..a41a1b8 100644 --- a/dev/schemas/split-swagger/components/schemas/VizBarChartConfig.json +++ b/dev/schemas/split-swagger/components/schemas/VizBarChartConfig.json @@ -9,7 +9,7 @@ "$ref": "./CartesianChartDisplay.json" }, "fieldConfig": { - "$ref": "./VizChartLayout.json" + "$ref": "./PivotChartLayout.json" }, "type": { "$ref": "./ChartKind.VERTICAL_BAR.json" diff --git a/dev/schemas/split-swagger/components/schemas/VizCartesianChartConfig.json b/dev/schemas/split-swagger/components/schemas/VizCartesianChartConfig.json index 6d8a698..5ede1f8 100644 --- a/dev/schemas/split-swagger/components/schemas/VizCartesianChartConfig.json +++ b/dev/schemas/split-swagger/components/schemas/VizCartesianChartConfig.json @@ -9,7 +9,7 @@ "$ref": "./CartesianChartDisplay.json" }, "fieldConfig": { - "$ref": "./VizChartLayout.json" + "$ref": "./PivotChartLayout.json" }, "type": { "anyOf": [ diff --git a/dev/schemas/split-swagger/components/schemas/VizChartConfig.json b/dev/schemas/split-swagger/components/schemas/VizChartConfig.json deleted file mode 100644 index db342b8..0000000 --- a/dev/schemas/split-swagger/components/schemas/VizChartConfig.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "anyOf": [ - { - "$ref": "./VizBarChartConfig.json" - }, - { - "$ref": "./VizLineChartConfig.json" - }, - { - "$ref": "./VizPieChartConfig.json" - }, - { - "$ref": "./VizTableConfig.json" - } - ] -} diff --git a/dev/schemas/split-swagger/components/schemas/VizChartLayout.json b/dev/schemas/split-swagger/components/schemas/VizChartLayout.json deleted file mode 100644 index 0bef492..0000000 --- a/dev/schemas/split-swagger/components/schemas/VizChartLayout.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "properties": { - "sortBy": { - "items": { - "$ref": "./VizSortBy.json" - }, - "type": "array" - }, - "groupBy": { - "items": { - "properties": { - "reference": { - "type": "string" - } - }, - "required": [ - "reference" - ], - "type": "object" - }, - "type": "array" - }, - "y": { - "items": { - "properties": { - "aggregation": { - "$ref": "./VizAggregationOptions.json" - }, - "reference": { - "type": "string" - } - }, - "required": [ - "reference" - ], - "type": "object" - }, - "type": "array" - }, - "x": { - "properties": { - "type": { - "$ref": "./VizIndexType.json" - }, - "reference": { - "type": "string" - } - }, - "required": [ - "type", - "reference" - ], - "type": "object" - } - }, - "required": [ - "y" - ], - "type": "object" -} diff --git a/dev/schemas/split-swagger/components/schemas/VizLineChartConfig.json b/dev/schemas/split-swagger/components/schemas/VizLineChartConfig.json index 0e0441f..a61785c 100644 --- a/dev/schemas/split-swagger/components/schemas/VizLineChartConfig.json +++ b/dev/schemas/split-swagger/components/schemas/VizLineChartConfig.json @@ -9,7 +9,7 @@ "$ref": "./CartesianChartDisplay.json" }, "fieldConfig": { - "$ref": "./VizChartLayout.json" + "$ref": "./PivotChartLayout.json" }, "type": { "$ref": "./ChartKind.LINE.json" diff --git a/dev/schemas/split-swagger/components/schemas/VizPieChartConfig.json b/dev/schemas/split-swagger/components/schemas/VizPieChartConfig.json index a77fd4f..957b307 100644 --- a/dev/schemas/split-swagger/components/schemas/VizPieChartConfig.json +++ b/dev/schemas/split-swagger/components/schemas/VizPieChartConfig.json @@ -9,7 +9,7 @@ "$ref": "./VizPieChartDisplay.json" }, "fieldConfig": { - "$ref": "./VizChartLayout.json" + "$ref": "./PivotChartLayout.json" }, "type": { "$ref": "./ChartKind.PIE.json" diff --git a/dev/schemas/split-swagger/components/schemas/VizTableConfig.json b/dev/schemas/split-swagger/components/schemas/VizTableConfig.json index 5920b56..087927b 100644 --- a/dev/schemas/split-swagger/components/schemas/VizTableConfig.json +++ b/dev/schemas/split-swagger/components/schemas/VizTableConfig.json @@ -5,6 +5,9 @@ }, { "properties": { + "display": { + "$ref": "./VizTableDisplay.json" + }, "columns": { "$ref": "./VizColumnsConfig.json" }, diff --git a/dev/schemas/split-swagger/openapi.json b/dev/schemas/split-swagger/openapi.json index 17c7239..0711f7f 100644 --- a/dev/schemas/split-swagger/openapi.json +++ b/dev/schemas/split-swagger/openapi.json @@ -16,7 +16,7 @@ }, "info": { "title": "Lightdash API", - "version": "0.1286.0", + "version": "0.1398.0", "description": "Open API documentation for all public Lightdash API endpoints. # Authentication Before you get started, you might need to create a Personal Access Token to authenticate via the API. You can create a token by following this guide: https://docs.lightdash.com/references/personal_tokens\n", "license": { "name": "MIT" @@ -41,6 +41,33 @@ "/api/v1/projects/{projectUuid}/dataCatalog/{table}/analytics/{field}": { "$ref": "paths/api_v1_projects_{projectUuid}_dataCatalog_{table}_analytics_{field}.json" }, + "/api/v1/projects/{projectUuid}/dataCatalog/metrics": { + "$ref": "paths/api_v1_projects_{projectUuid}_dataCatalog_metrics.json" + }, + "/api/v1/projects/{projectUuid}/dataCatalog/metrics/{tableName}/{metricName}": { + "$ref": "paths/api_v1_projects_{projectUuid}_dataCatalog_metrics_{tableName}_{metricName}.json" + }, + "/api/v1/projects/{projectUuid}/dataCatalog/metrics-with-time-dimensions": { + "$ref": "paths/api_v1_projects_{projectUuid}_dataCatalog_metrics-with-time-dimensions.json" + }, + "/api/v1/projects/{projectUuid}/dataCatalog/{catalogSearchUuid}/categories": { + "$ref": "paths/api_v1_projects_{projectUuid}_dataCatalog_{catalogSearchUuid}_categories.json" + }, + "/api/v1/projects/{projectUuid}/dataCatalog/{catalogSearchUuid}/categories/{tagUuid}": { + "$ref": "paths/api_v1_projects_{projectUuid}_dataCatalog_{catalogSearchUuid}_categories_{tagUuid}.json" + }, + "/api/v1/projects/{projectUuid}/dataCatalog/{catalogSearchUuid}/icon": { + "$ref": "paths/api_v1_projects_{projectUuid}_dataCatalog_{catalogSearchUuid}_icon.json" + }, + "/api/v1/projects/{projectUuid}/dataCatalog/metrics/tree": { + "$ref": "paths/api_v1_projects_{projectUuid}_dataCatalog_metrics_tree.json" + }, + "/api/v1/projects/{projectUuid}/dataCatalog/metrics/tree/edges": { + "$ref": "paths/api_v1_projects_{projectUuid}_dataCatalog_metrics_tree_edges.json" + }, + "/api/v1/projects/{projectUuid}/dataCatalog/metrics/tree/edges/{sourceCatalogSearchUuid}/{targetCatalogSearchUuid}": { + "$ref": "paths/api_v1_projects_{projectUuid}_dataCatalog_metrics_tree_edges_{sourceCatalogSearchUuid}_{targetCatalogSearchUuid}.json" + }, "/api/v1/comments/dashboards/{dashboardUuid}/{dashboardTileUuid}": { "$ref": "paths/api_v1_comments_dashboards_{dashboardUuid}_{dashboardTileUuid}.json" }, @@ -110,6 +137,9 @@ "/api/v1/groups/{groupUuid}/projects/{projectUuid}": { "$ref": "paths/api_v1_groups_{groupUuid}_projects_{projectUuid}.json" }, + "/api/v1/projects/{projectUuid}/metricsExplorer/{explore}/{metric}/runMetricExplorerQuery": { + "$ref": "paths/api_v1_projects_{projectUuid}_metricsExplorer_{explore}_{metric}_runMetricExplorerQuery.json" + }, "/api/v1/notifications": { "$ref": "paths/api_v1_notifications.json" }, @@ -191,6 +221,33 @@ "/api/v1/projects/{projectUuid}/semantic-layer-connection": { "$ref": "paths/api_v1_projects_{projectUuid}_semantic-layer-connection.json" }, + "/api/v1/projects/{projectUuid}/dashboards": { + "$ref": "paths/api_v1_projects_{projectUuid}_dashboards.json" + }, + "/api/v1/projects/{projectUuid}/createPreview": { + "$ref": "paths/api_v1_projects_{projectUuid}_createPreview.json" + }, + "/api/v1/projects/{projectUuid}/schedulerSettings": { + "$ref": "paths/api_v1_projects_{projectUuid}_schedulerSettings.json" + }, + "/api/v1/projects/{projectUuid}/tags": { + "$ref": "paths/api_v1_projects_{projectUuid}_tags.json" + }, + "/api/v1/projects/{projectUuid}/tags/{tagUuid}": { + "$ref": "paths/api_v1_projects_{projectUuid}_tags_{tagUuid}.json" + }, + "/api/v1/projects/{projectUuid}/charts/code": { + "$ref": "paths/api_v1_projects_{projectUuid}_charts_code.json" + }, + "/api/v1/projects/{projectUuid}/dashboards/code": { + "$ref": "paths/api_v1_projects_{projectUuid}_dashboards_code.json" + }, + "/api/v1/projects/{projectUuid}/charts/{slug}/code": { + "$ref": "paths/api_v1_projects_{projectUuid}_charts_{slug}_code.json" + }, + "/api/v1/projects/{projectUuid}/dashboards/{slug}/code": { + "$ref": "paths/api_v1_projects_{projectUuid}_dashboards_{slug}_code.json" + }, "/api/v1/projects/{projectUuid}/explores/{exploreId}/runUnderlyingDataQuery": { "$ref": "paths/api_v1_projects_{projectUuid}_explores_{exploreId}_runUnderlyingDataQuery.json" }, @@ -224,6 +281,9 @@ "/api/v1/saved/{chartUuid}/promoteDiff": { "$ref": "paths/api_v1_saved_{chartUuid}_promoteDiff.json" }, + "/api/v1/saved/{chartUuid}/downloadCsv": { + "$ref": "paths/api_v1_saved_{chartUuid}_downloadCsv.json" + }, "/api/v1/schedulers/{projectUuid}/logs": { "$ref": "paths/api_v1_schedulers_{projectUuid}_logs.json" }, @@ -305,6 +365,9 @@ "/api/v1/user/login-options": { "$ref": "paths/api_v1_user_login-options.json" }, + "/api/v1/user/me/personal-access-tokens/{personalAccessTokenUuid}/rotate": { + "$ref": "paths/api_v1_user_me_personal-access-tokens_{personalAccessTokenUuid}_rotate.json" + }, "/api/v1/projects/{projectUuid}/validate": { "$ref": "paths/api_v1_projects_{projectUuid}_validate.json" }, diff --git a/dev/schemas/split-swagger/paths/api_v1_org_groups.json b/dev/schemas/split-swagger/paths/api_v1_org_groups.json index 9a35aef..8df40e4 100644 --- a/dev/schemas/split-swagger/paths/api_v1_org_groups.json +++ b/dev/schemas/split-swagger/paths/api_v1_org_groups.json @@ -7,7 +7,7 @@ "content": { "application/json": { "schema": { - "$ref": "../components/schemas/ApiGroupResponse.json" + "$ref": "../components/schemas/ApiCreateGroupResponse.json" } } } @@ -72,6 +72,24 @@ ], "security": [], "parameters": [ + { + "in": "query", + "name": "page", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, + { + "in": "query", + "name": "pageSize", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, { "description": "number of members to include", "in": "query", @@ -81,6 +99,14 @@ "format": "double", "type": "number" } + }, + { + "in": "query", + "name": "searchQuery", + "required": false, + "schema": { + "type": "string" + } } ] } diff --git a/dev/schemas/split-swagger/paths/api_v1_org_users.json b/dev/schemas/split-swagger/paths/api_v1_org_users.json index 9e63b98..298a09e 100644 --- a/dev/schemas/split-swagger/paths/api_v1_org_users.json +++ b/dev/schemas/split-swagger/paths/api_v1_org_users.json @@ -63,6 +63,15 @@ "schema": { "type": "string" } + }, + { + "description": "filter users who can view this project", + "in": "query", + "name": "projectUuid", + "required": false, + "schema": { + "type": "string" + } } ] } diff --git a/dev/schemas/split-swagger/paths/api_v1_projects_{projectUuid}_chart-summaries.json b/dev/schemas/split-swagger/paths/api_v1_projects_{projectUuid}_chart-summaries.json index 8fc2cc2..3655bf5 100644 --- a/dev/schemas/split-swagger/paths/api_v1_projects_{projectUuid}_chart-summaries.json +++ b/dev/schemas/split-swagger/paths/api_v1_projects_{projectUuid}_chart-summaries.json @@ -37,6 +37,15 @@ "schema": { "type": "string" } + }, + { + "description": "Whether to exclude charts that are saved in dashboards", + "in": "query", + "name": "excludeChartsSavedInDashboard", + "required": false, + "schema": { + "type": "boolean" + } } ] } diff --git a/dev/schemas/split-swagger/paths/api_v1_projects_{projectUuid}_explores_{exploreId}_downloadCsv.json b/dev/schemas/split-swagger/paths/api_v1_projects_{projectUuid}_explores_{exploreId}_downloadCsv.json index 3b50d01..0c2842e 100644 --- a/dev/schemas/split-swagger/paths/api_v1_projects_{projectUuid}_explores_{exploreId}_downloadCsv.json +++ b/dev/schemas/split-swagger/paths/api_v1_projects_{projectUuid}_explores_{exploreId}_downloadCsv.json @@ -80,6 +80,12 @@ }, { "properties": { + "pivotColumns": { + "items": { + "type": "string" + }, + "type": "array" + }, "chartName": { "type": "string" }, diff --git a/dev/schemas/split-swagger/paths/api_v1_projects_{projectUuid}_semantic-layer-connection.json b/dev/schemas/split-swagger/paths/api_v1_projects_{projectUuid}_semantic-layer-connection.json index cde7b2a..7f22c5e 100644 --- a/dev/schemas/split-swagger/paths/api_v1_projects_{projectUuid}_semantic-layer-connection.json +++ b/dev/schemas/split-swagger/paths/api_v1_projects_{projectUuid}_semantic-layer-connection.json @@ -42,10 +42,49 @@ "content": { "application/json": { "schema": { - "$ref": "../components/schemas/SemanticLayerConnection.json" + "$ref": "../components/schemas/SemanticLayerConnectionUpdate.json" } } } } + }, + "delete": { + "operationId": "deleteProjectSemanticLayerConnection", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "../components/schemas/ApiSuccessEmpty.json" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "../components/schemas/ApiErrorPayload.json" + } + } + } + } + }, + "tags": [ + "Projects" + ], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] } } diff --git a/dev/schemas/split-swagger/paths/api_v1_slack_channels.json b/dev/schemas/split-swagger/paths/api_v1_slack_channels.json index 6082ca8..58a6354 100644 --- a/dev/schemas/split-swagger/paths/api_v1_slack_channels.json +++ b/dev/schemas/split-swagger/paths/api_v1_slack_channels.json @@ -28,6 +28,15 @@ "Integrations" ], "security": [], - "parameters": [] + "parameters": [ + { + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string" + } + } + ] } } diff --git a/dev/schemas/swagger.json b/dev/schemas/swagger.json index 403cb8f..8100e39 100644 --- a/dev/schemas/swagger.json +++ b/dev/schemas/swagger.json @@ -84,6 +84,50 @@ "enum": ["field"], "type": "string" }, + "Pick_Tag.name-or-color-or-tagUuid_": { + "properties": { + "name": { + "type": "string" + }, + "color": { + "type": "string" + }, + "tagUuid": { + "type": "string" + } + }, + "required": ["name", "color", "tagUuid"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "EmojiIcon": { + "properties": { + "unicode": { + "type": "string" + } + }, + "required": ["unicode"], + "type": "object" + }, + "CustomIcon": { + "properties": { + "url": { + "type": "string" + } + }, + "required": ["url"], + "type": "object" + }, + "CatalogItemIcon": { + "anyOf": [ + { + "$ref": "#/components/schemas/EmojiIcon" + }, + { + "$ref": "#/components/schemas/CustomIcon" + } + ] + }, "CatalogField": { "allOf": [ { @@ -94,6 +138,24 @@ }, { "properties": { + "icon": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemIcon" + } + ], + "nullable": true + }, + "chartUsage": { + "type": "number", + "format": "double" + }, + "categories": { + "items": { + "$ref": "#/components/schemas/Pick_Tag.name-or-color-or-tagUuid_" + }, + "type": "array" + }, "tags": { "items": { "type": "string" @@ -111,9 +173,18 @@ }, "type": { "$ref": "#/components/schemas/CatalogType.Field" + }, + "catalogSearchUuid": { + "type": "string" } }, - "required": ["tableName", "type"], + "required": [ + "icon", + "categories", + "tableName", + "type", + "catalogSearchUuid" + ], "type": "object" } ] @@ -209,12 +280,30 @@ }, { "properties": { + "icon": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemIcon" + } + ], + "nullable": true + }, + "chartUsage": { + "type": "number", + "format": "double" + }, "joinedTables": { "items": { "$ref": "#/components/schemas/CompiledExploreJoin" }, "type": "array" }, + "categories": { + "items": { + "$ref": "#/components/schemas/Pick_Tag.name-or-color-or-tagUuid_" + }, + "type": "array" + }, "tags": { "items": { "type": "string" @@ -232,9 +321,17 @@ "$ref": "#/components/schemas/InlineError" }, "type": "array" + }, + "catalogSearchUuid": { + "type": "string" } }, - "required": ["type"], + "required": [ + "icon", + "categories", + "type", + "catalogSearchUuid" + ], "type": "object" } ] @@ -379,111 +476,60 @@ "ApiCatalogAnalyticsResults": { "$ref": "#/components/schemas/CatalogAnalytics" }, - "ApiCreateComment": { - "properties": { - "results": { - "type": "string" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } + "ApiMetricsCatalogResults": { + "items": { + "$ref": "#/components/schemas/CatalogField" }, - "required": ["results", "status"], - "type": "object" + "type": "array" }, - "Pick_Comment.text-or-replyTo-or-mentions-or-textHtml_": { + "KnexPaginateArgs": { "properties": { - "text": { - "type": "string" - }, - "replyTo": { - "type": "string" - }, - "mentions": { - "items": { - "type": "string" - }, - "type": "array" + "page": { + "type": "number", + "format": "double" }, - "textHtml": { - "type": "string" + "pageSize": { + "type": "number", + "format": "double" } }, - "required": ["text", "mentions", "textHtml"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "required": ["page", "pageSize"], + "type": "object" }, - "Comment": { + "KnexPaginatedData_ApiMetricsCatalogResults_": { "properties": { - "mentions": { - "items": { - "type": "string" - }, - "type": "array" - }, - "canRemove": { - "type": "boolean" - }, - "resolved": { - "type": "boolean" - }, - "replies": { - "items": { - "$ref": "#/components/schemas/Comment" - }, - "type": "array" - }, - "replyTo": { - "type": "string" - }, - "user": { - "properties": { - "name": { - "type": "string" + "pagination": { + "allOf": [ + { + "$ref": "#/components/schemas/KnexPaginateArgs" + }, + { + "properties": { + "totalResults": { + "type": "number", + "format": "double" + }, + "totalPageCount": { + "type": "number", + "format": "double" + } + }, + "required": ["totalResults", "totalPageCount"], + "type": "object" } - }, - "required": ["name"], - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "textHtml": { - "type": "string" - }, - "text": { - "type": "string" + ] }, - "commentId": { - "type": "string" + "data": { + "$ref": "#/components/schemas/ApiMetricsCatalogResults" } }, - "required": [ - "mentions", - "canRemove", - "resolved", - "user", - "createdAt", - "textHtml", - "text", - "commentId" - ], + "required": ["data"], "type": "object" }, - "ApiGetComments": { + "ApiMetricsCatalog": { "properties": { "results": { - "properties": {}, - "additionalProperties": { - "items": { - "$ref": "#/components/schemas/Comment" - }, - "type": "array" - }, - "type": "object" + "$ref": "#/components/schemas/KnexPaginatedData_ApiMetricsCatalogResults_" }, "status": { "type": "string", @@ -494,572 +540,599 @@ "required": ["results", "status"], "type": "object" }, - "ApiResolveComment": { - "properties": { - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["status"], - "type": "object" + "ApiSortDirection": { + "type": "string", + "enum": ["asc", "desc"] }, - "ApiCsvUrlResponse": { - "properties": { - "results": { - "properties": { - "truncated": { - "type": "boolean" - }, - "status": { - "type": "string" - }, - "url": { - "type": "string" - } - }, - "required": ["truncated", "status", "url"], - "type": "object" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "Record_string.Record_string.string-or-string-Array__": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" }, - "DashboardTileTypes": { + "FieldType.METRIC": { + "enum": ["metric"], + "type": "string" + }, + "MetricType": { "enum": [ - "saved_chart", - "sql_chart", - "semantic_viewer_chart", - "markdown", - "loom" + "percentile", + "average", + "count", + "count_distinct", + "sum", + "min", + "max", + "number", + "median", + "string", + "date", + "timestamp", + "boolean" ], "type": "string" }, - "Required_CreateDashboardTileBase_": { - "properties": { - "uuid": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/DashboardTileTypes" - }, - "x": { - "type": "number", - "format": "double" - }, - "y": { - "type": "number", - "format": "double" - }, - "h": { - "type": "number", - "format": "double" - }, - "w": { - "type": "number", - "format": "double" - }, - "tabUuid": { - "type": "string" - } - }, - "required": ["uuid", "type", "x", "y", "h", "w"], - "type": "object", - "description": "Make all properties in T required" - }, - "DashboardTileBase": { - "$ref": "#/components/schemas/Required_CreateDashboardTileBase_" - }, - "DashboardTileTypes.SAVED_CHART": { - "enum": ["saved_chart"], + "ConditionalOperator": { + "enum": [ + "isNull", + "notNull", + "equals", + "notEquals", + "startsWith", + "endsWith", + "include", + "doesNotInclude", + "lessThan", + "lessThanOrEqual", + "greaterThan", + "greaterThanOrEqual", + "inThePast", + "notInThePast", + "inTheNext", + "inTheCurrent", + "notInTheCurrent", + "inBetween" + ], "type": "string" }, - "DashboardChartTileProperties": { + "MetricFilterRule": { "properties": { - "properties": { + "values": { + "items": {}, + "type": "array" + }, + "operator": { + "$ref": "#/components/schemas/ConditionalOperator" + }, + "id": { + "type": "string" + }, + "target": { "properties": { - "lastVersionChartKind": { - "allOf": [ - { - "$ref": "#/components/schemas/ChartKind" - } - ], - "nullable": true - }, - "chartName": { - "type": "string", - "nullable": true - }, - "belongsToDashboard": { - "type": "boolean" - }, - "savedChartUuid": { - "type": "string", - "nullable": true - }, - "hideTitle": { - "type": "boolean" - }, - "title": { + "fieldRef": { "type": "string" } }, - "required": ["savedChartUuid"], + "required": ["fieldRef"], "type": "object" }, - "type": { - "$ref": "#/components/schemas/DashboardTileTypes.SAVED_CHART" + "settings": {}, + "disabled": { + "type": "boolean" + }, + "required": { + "type": "boolean" } }, - "required": ["properties", "type"], - "type": "object" + "required": ["operator", "id", "target"], + "type": "object", + "additionalProperties": true }, - "DashboardChartTile": { - "allOf": [ + "CustomFormatType": { + "enum": [ + "default", + "percent", + "currency", + "number", + "id", + "date", + "timestamp" + ], + "type": "string" + }, + "NumberSeparator": { + "enum": [ + "default", + "commaPeriod", + "spacePeriod", + "periodComma", + "noSeparatorPeriod" + ], + "type": "string" + }, + "Compact": { + "enum": ["thousands", "millions", "billions", "trillions"], + "type": "string" + }, + "CompactOrAlias": { + "anyOf": [ { - "$ref": "#/components/schemas/DashboardTileBase" + "$ref": "#/components/schemas/Compact" }, { - "$ref": "#/components/schemas/DashboardChartTileProperties" + "type": "string", + "enum": [ + "K", + "thousand", + "M", + "million", + "B", + "billion", + "T", + "trillion" + ] } ] }, - "DashboardTileTypes.MARKDOWN": { - "enum": ["markdown"], + "TimeFrames": { + "enum": [ + "RAW", + "YEAR", + "QUARTER", + "MONTH", + "WEEK", + "DAY", + "HOUR", + "MINUTE", + "SECOND", + "MILLISECOND", + "DAY_OF_WEEK_INDEX", + "DAY_OF_MONTH_NUM", + "DAY_OF_YEAR_NUM", + "WEEK_NUM", + "MONTH_NUM", + "QUARTER_NUM", + "YEAR_NUM", + "DAY_OF_WEEK_NAME", + "MONTH_NAME", + "QUARTER_NAME", + "HOUR_OF_DAY_NUM", + "MINUTE_OF_HOUR_NUM" + ], "type": "string" }, - "DashboardMarkdownTileProperties": { + "CustomFormat": { "properties": { - "properties": { - "properties": { - "content": { - "type": "string" - }, - "title": { - "type": "string" - } - }, - "required": ["content", "title"], - "type": "object" - }, "type": { - "$ref": "#/components/schemas/DashboardTileTypes.MARKDOWN" - } - }, - "required": ["properties", "type"], - "type": "object" - }, - "DashboardMarkdownTile": { - "allOf": [ - { - "$ref": "#/components/schemas/DashboardTileBase" + "$ref": "#/components/schemas/CustomFormatType" }, - { - "$ref": "#/components/schemas/DashboardMarkdownTileProperties" + "round": { + "type": "number", + "format": "double" + }, + "separator": { + "$ref": "#/components/schemas/NumberSeparator" + }, + "currency": { + "type": "string" + }, + "compact": { + "$ref": "#/components/schemas/CompactOrAlias" + }, + "prefix": { + "type": "string" + }, + "suffix": { + "type": "string" + }, + "timeInterval": { + "$ref": "#/components/schemas/TimeFrames" } - ] - }, - "DashboardTileTypes.LOOM": { - "enum": ["loom"], - "type": "string" + }, + "required": ["type"], + "type": "object", + "additionalProperties": true }, - "DashboardLoomTileProperties": { + "DefaultTimeDimension": { "properties": { - "properties": { - "properties": { - "url": { - "type": "string" - }, - "hideTitle": { - "type": "boolean" - }, - "title": { - "type": "string" - } - }, - "required": ["url", "title"], - "type": "object" + "interval": { + "$ref": "#/components/schemas/TimeFrames" }, - "type": { - "$ref": "#/components/schemas/DashboardTileTypes.LOOM" + "field": { + "type": "string" } }, - "required": ["properties", "type"], + "required": ["interval", "field"], "type": "object" }, - "DashboardLoomTile": { - "allOf": [ - { - "$ref": "#/components/schemas/DashboardTileBase" + "SourcePosition": { + "properties": { + "character": { + "type": "number", + "format": "double" }, - { - "$ref": "#/components/schemas/DashboardLoomTileProperties" + "line": { + "type": "number", + "format": "double" } - ] - }, - "DashboardTileTypes.SQL_CHART": { - "enum": ["sql_chart"], - "type": "string" + }, + "required": ["character", "line"], + "type": "object" }, - "DashboardSqlChartTileProperties": { + "Source": { "properties": { - "properties": { + "content": { + "type": "string" + }, + "highlight": { "properties": { - "hideTitle": { - "type": "boolean" - }, - "chartName": { - "type": "string" - }, - "savedSqlUuid": { - "type": "string", - "nullable": true + "end": { + "$ref": "#/components/schemas/SourcePosition" }, - "title": { - "type": "string" + "start": { + "$ref": "#/components/schemas/SourcePosition" } }, - "required": ["chartName", "savedSqlUuid"], + "required": ["end", "start"], "type": "object" }, - "type": { - "$ref": "#/components/schemas/DashboardTileTypes.SQL_CHART" - } - }, - "required": ["properties", "type"], - "type": "object" - }, - "DashboardSqlChartTile": { - "allOf": [ - { - "$ref": "#/components/schemas/DashboardTileBase" - }, - { - "$ref": "#/components/schemas/DashboardSqlChartTileProperties" - } - ] - }, - "DashboardTileTypes.SEMANTIC_VIEWER_CHART": { - "enum": ["semantic_viewer_chart"], - "type": "string" - }, - "DashboardSemanticViewerChartTileProperties": { - "properties": { - "properties": { + "range": { "properties": { - "hideTitle": { - "type": "boolean" - }, - "chartName": { - "type": "string" - }, - "savedSemanticViewerChartUuid": { - "type": "string", - "nullable": true + "end": { + "$ref": "#/components/schemas/SourcePosition" }, - "title": { - "type": "string" + "start": { + "$ref": "#/components/schemas/SourcePosition" } }, - "required": [ - "chartName", - "savedSemanticViewerChartUuid" - ], + "required": ["end", "start"], "type": "object" }, - "type": { - "$ref": "#/components/schemas/DashboardTileTypes.SEMANTIC_VIEWER_CHART" + "path": { + "type": "string" } }, - "required": ["properties", "type"], + "required": ["content", "range", "path"], "type": "object" }, - "DashboardSemanticViewerChartTile": { - "allOf": [ - { - "$ref": "#/components/schemas/DashboardTileBase" - }, - { - "$ref": "#/components/schemas/DashboardSemanticViewerChartTileProperties" - } - ] - }, - "DashboardTile": { - "anyOf": [ - { - "$ref": "#/components/schemas/DashboardChartTile" - }, - { - "$ref": "#/components/schemas/DashboardMarkdownTile" - }, - { - "$ref": "#/components/schemas/DashboardLoomTile" - }, - { - "$ref": "#/components/schemas/DashboardSqlChartTile" - }, - { - "$ref": "#/components/schemas/DashboardSemanticViewerChartTile" - } - ] + "Format": { + "enum": ["km", "mi", "usd", "gbp", "eur", "id", "percent"], + "type": "string" }, - "DashboardFieldTarget": { + "FieldUrl": { "properties": { - "tableName": { + "label": { "type": "string" }, - "fieldId": { + "url": { "type": "string" } }, - "required": ["tableName", "fieldId"], + "required": ["label", "url"], "type": "object" }, - "ConditionalOperator": { - "enum": [ - "isNull", - "notNull", - "equals", - "notEquals", - "startsWith", - "endsWith", - "include", - "doesNotInclude", - "lessThan", - "lessThanOrEqual", - "greaterThan", - "greaterThanOrEqual", - "inThePast", - "notInThePast", - "inTheNext", - "inTheCurrent", - "notInTheCurrent", - "inBetween" - ], - "type": "string" - }, - "FilterRule_ConditionalOperator.T.V.any_": { + "CompiledMetric": { "properties": { - "values": { - "items": {}, - "type": "array" + "fieldType": { + "$ref": "#/components/schemas/FieldType.METRIC" }, - "operator": { - "$ref": "#/components/schemas/ConditionalOperator" + "type": { + "$ref": "#/components/schemas/MetricType" }, - "id": { + "name": { "type": "string" }, - "target": { - "$ref": "#/components/schemas/DashboardFieldTarget" + "label": { + "type": "string" }, - "settings": {}, - "disabled": { - "type": "boolean" + "table": { + "type": "string" }, - "required": { + "tableLabel": { + "type": "string" + }, + "sql": { + "type": "string" + }, + "description": { + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/Source" + }, + "hidden": { "type": "boolean" - } - }, - "required": ["operator", "id", "target"], - "type": "object", - "additionalProperties": true - }, - "Record_string.DashboardTileTarget_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" - }, - "DashboardFilterRule": { - "allOf": [ - { - "$ref": "#/components/schemas/FilterRule_ConditionalOperator.T.V.any_" }, - { - "properties": { - "label": { - "type": "string" - }, - "tileTargets": { - "$ref": "#/components/schemas/Record_string.DashboardTileTarget_" - } - }, - "type": "object" - } - ] - }, - "DashboardFilters": { - "properties": { - "tableCalculations": { + "compact": { + "$ref": "#/components/schemas/CompactOrAlias" + }, + "round": { + "type": "number", + "format": "double" + }, + "format": { + "$ref": "#/components/schemas/Format" + }, + "groupLabel": { + "type": "string", + "deprecated": true + }, + "groups": { "items": { - "$ref": "#/components/schemas/DashboardFilterRule" + "type": "string" }, "type": "array" }, - "metrics": { + "urls": { "items": { - "$ref": "#/components/schemas/DashboardFilterRule" + "$ref": "#/components/schemas/FieldUrl" }, "type": "array" }, - "dimensions": { + "index": { + "type": "number", + "format": "double" + }, + "tags": { "items": { - "$ref": "#/components/schemas/DashboardFilterRule" + "type": "string" }, "type": "array" - } - }, - "required": ["tableCalculations", "metrics", "dimensions"], - "type": "object" - }, - "UpdatedByUser": { - "properties": { - "userUuid": { - "type": "string" }, - "firstName": { - "type": "string" + "isAutoGenerated": { + "type": "boolean" }, - "lastName": { - "type": "string" - } - }, - "required": ["userUuid", "firstName", "lastName"], - "type": "object", - "additionalProperties": true - }, - "DashboardTab": { - "properties": { - "order": { + "showUnderlyingValues": { + "items": { + "type": "string" + }, + "type": "array" + }, + "filters": { + "items": { + "$ref": "#/components/schemas/MetricFilterRule" + }, + "type": "array" + }, + "percentile": { "type": "number", "format": "double" }, - "name": { + "formatOptions": { + "$ref": "#/components/schemas/CustomFormat" + }, + "dimensionReference": { "type": "string" }, - "uuid": { + "requiredAttributes": { + "$ref": "#/components/schemas/Record_string.string-or-string-Array_" + }, + "defaultTimeDimension": { + "$ref": "#/components/schemas/DefaultTimeDimension" + }, + "compiledSql": { "type": "string" + }, + "tablesReferences": { + "items": { + "type": "string" + }, + "type": "array" + }, + "tablesRequiredAttributes": { + "$ref": "#/components/schemas/Record_string.Record_string.string-or-string-Array__" } }, - "required": ["order", "name", "uuid"], - "type": "object" + "required": [ + "fieldType", + "type", + "name", + "label", + "table", + "tableLabel", + "sql", + "hidden", + "isAutoGenerated", + "compiledSql" + ], + "type": "object", + "additionalProperties": true }, - "Pick_Dashboard.Exclude_keyofDashboard.isPrivate-or-access__": { + "FieldType.DIMENSION": { + "enum": ["dimension"], + "type": "string" + }, + "DimensionType": { + "enum": ["string", "number", "timestamp", "date", "boolean"], + "type": "string" + }, + "Record_string.string_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "CompiledDimension": { "properties": { + "fieldType": { + "$ref": "#/components/schemas/FieldType.DIMENSION" + }, + "type": { + "$ref": "#/components/schemas/DimensionType" + }, "name": { "type": "string" }, - "description": { + "label": { "type": "string" }, - "uuid": { + "table": { "type": "string" }, - "spaceName": { + "tableLabel": { "type": "string" }, - "spaceUuid": { + "sql": { "type": "string" }, - "projectUuid": { + "description": { "type": "string" }, - "organizationUuid": { - "type": "string" + "source": { + "$ref": "#/components/schemas/Source" }, - "pinnedListUuid": { - "type": "string", - "nullable": true + "hidden": { + "type": "boolean" }, - "slug": { - "type": "string" + "compact": { + "$ref": "#/components/schemas/CompactOrAlias" }, - "dashboardVersionId": { + "round": { "type": "number", "format": "double" }, - "updatedAt": { + "format": { + "$ref": "#/components/schemas/Format" + }, + "groupLabel": { "type": "string", - "format": "date-time" + "deprecated": true }, - "tiles": { + "groups": { "items": { - "$ref": "#/components/schemas/DashboardTile" + "type": "string" }, "type": "array" }, - "filters": { - "$ref": "#/components/schemas/DashboardFilters" - }, - "updatedByUser": { - "$ref": "#/components/schemas/UpdatedByUser" + "urls": { + "items": { + "$ref": "#/components/schemas/FieldUrl" + }, + "type": "array" }, - "views": { + "index": { "type": "number", "format": "double" }, - "firstViewedAt": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "string" - } - ], - "nullable": true + "tags": { + "items": { + "type": "string" + }, + "type": "array" }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true + "group": { + "type": "string", + "deprecated": true }, - "tabs": { + "requiredAttributes": { + "$ref": "#/components/schemas/Record_string.string-or-string-Array_" + }, + "timeInterval": { + "$ref": "#/components/schemas/TimeFrames" + }, + "timeIntervalBaseDimensionName": { + "type": "string" + }, + "isAdditionalDimension": { + "type": "boolean" + }, + "colors": { + "$ref": "#/components/schemas/Record_string.string_" + }, + "isIntervalBase": { + "type": "boolean" + }, + "compiledSql": { + "type": "string" + }, + "tablesReferences": { "items": { - "$ref": "#/components/schemas/DashboardTab" + "type": "string" }, "type": "array" + }, + "tablesRequiredAttributes": { + "$ref": "#/components/schemas/Record_string.Record_string.string-or-string-Array__" } }, "required": [ + "fieldType", + "type", "name", - "uuid", - "spaceName", - "spaceUuid", - "projectUuid", - "organizationUuid", - "pinnedListUuid", - "slug", - "dashboardVersionId", - "updatedAt", - "tiles", - "filters", - "views", - "firstViewedAt", - "pinnedListOrder", - "tabs" + "label", + "table", + "tableLabel", + "sql", + "hidden", + "compiledSql" ], "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "additionalProperties": true }, - "Omit_Dashboard.isPrivate-or-access_": { - "$ref": "#/components/schemas/Pick_Dashboard.Exclude_keyofDashboard.isPrivate-or-access__", - "description": "Construct a type with the properties of T except for those in type K." + "DimensionType.DATE": { + "enum": ["date"], + "type": "string" }, - "DashboardDAO": { - "$ref": "#/components/schemas/Omit_Dashboard.isPrivate-or-access_" + "DimensionType.TIMESTAMP": { + "enum": ["timestamp"], + "type": "string" }, - "ApiPromoteDashboardResponse": { + "MetricWithAssociatedTimeDimension": { + "allOf": [ + { + "$ref": "#/components/schemas/CompiledMetric" + }, + { + "properties": { + "availableTimeDimensions": { + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/CompiledDimension" + }, + { + "properties": { + "type": { + "anyOf": [ + { + "$ref": "#/components/schemas/DimensionType.DATE" + }, + { + "$ref": "#/components/schemas/DimensionType.TIMESTAMP" + } + ] + } + }, + "required": ["type"], + "type": "object" + } + ] + }, + "type": "array" + }, + "timeDimension": { + "allOf": [ + { + "$ref": "#/components/schemas/DefaultTimeDimension" + }, + { + "properties": { + "table": { + "type": "string" + } + }, + "required": ["table"], + "type": "object" + } + ] + } + }, + "type": "object" + } + ] + }, + "ApiGetMetricPeek": { "properties": { "results": { - "$ref": "#/components/schemas/DashboardDAO" + "$ref": "#/components/schemas/MetricWithAssociatedTimeDimension" }, "status": { "type": "string", @@ -1070,2636 +1143,2663 @@ "required": ["results", "status"], "type": "object" }, - "PromotionAction": { - "enum": ["no changes", "create", "update", "delete"], - "type": "string" + "ApiMetricsWithAssociatedTimeDimensionResponse": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/MetricWithAssociatedTimeDimension" + }, + "type": "array" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" }, - "Pick_SpaceSummary.Exclude_keyofSpaceSummary.userAccess__": { + "ApiSuccessEmpty": { + "properties": { + "results": {}, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["status"], + "type": "object" + }, + "Pick_CatalogField.catalogSearchUuid-or-name-or-tableName_": { "properties": { "name": { "type": "string" }, - "uuid": { + "catalogSearchUuid": { "type": "string" }, + "tableName": { + "type": "string" + } + }, + "required": ["name", "catalogSearchUuid", "tableName"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "CatalogMetricsTreeNode": { + "$ref": "#/components/schemas/Pick_CatalogField.catalogSearchUuid-or-name-or-tableName_" + }, + "CatalogMetricsTreeEdge": { + "properties": { "projectUuid": { "type": "string" }, - "organizationUuid": { - "type": "string" - }, - "pinnedListUuid": { + "createdByUserUuid": { "type": "string", "nullable": true }, - "slug": { - "type": "string" - }, - "isPrivate": { - "type": "boolean" - }, - "access": { - "items": { - "type": "string" - }, - "type": "array" - }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true + "createdAt": { + "type": "string", + "format": "date-time" }, - "chartCount": { - "type": "number", - "format": "double" + "target": { + "$ref": "#/components/schemas/CatalogMetricsTreeNode" }, - "dashboardCount": { - "type": "number", - "format": "double" + "source": { + "$ref": "#/components/schemas/CatalogMetricsTreeNode" } }, "required": [ - "name", - "uuid", "projectUuid", - "organizationUuid", - "pinnedListUuid", - "slug", - "isPrivate", - "access", - "pinnedListOrder", - "chartCount", - "dashboardCount" + "createdByUserUuid", + "createdAt", + "target", + "source" ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Omit_SpaceSummary.userAccess_": { - "$ref": "#/components/schemas/Pick_SpaceSummary.Exclude_keyofSpaceSummary.userAccess__", - "description": "Construct a type with the properties of T except for those in type K." - }, - "PromotedSpace": { - "$ref": "#/components/schemas/Omit_SpaceSummary.userAccess_" + "type": "object" }, - "PromotedDashboard": { - "allOf": [ - { - "$ref": "#/components/schemas/DashboardDAO" - }, - { + "ApiGetMetricsTree": { + "properties": { + "results": { "properties": { - "spaceSlug": { - "type": "string" + "edges": { + "items": { + "$ref": "#/components/schemas/CatalogMetricsTreeEdge" + }, + "type": "array" } }, - "required": ["spaceSlug"], + "required": ["edges"], "type": "object" - } - ] - }, - "FieldId": { - "type": "string" - }, - "FilterGroup": { - "anyOf": [ - { - "$ref": "#/components/schemas/OrFilterGroup" }, - { - "$ref": "#/components/schemas/AndFilterGroup" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } - ] + }, + "required": ["results", "status"], + "type": "object" }, - "FieldTarget": { + "ApiMetricsTreeEdgePayload": { "properties": { - "fieldId": { + "targetCatalogSearchUuid": { + "type": "string" + }, + "sourceCatalogSearchUuid": { "type": "string" } }, - "required": ["fieldId"], + "required": [ + "targetCatalogSearchUuid", + "sourceCatalogSearchUuid" + ], "type": "object" }, - "FilterRule": { + "ApiCreateComment": { "properties": { - "values": { - "items": {}, - "type": "array" - }, - "operator": { - "$ref": "#/components/schemas/ConditionalOperator" - }, - "id": { + "results": { "type": "string" }, - "target": { - "$ref": "#/components/schemas/FieldTarget" - }, - "settings": {}, - "disabled": { - "type": "boolean" - }, - "required": { - "type": "boolean" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } }, - "required": ["operator", "id", "target"], - "type": "object", - "additionalProperties": true - }, - "FilterGroupItem": { - "anyOf": [ - { - "$ref": "#/components/schemas/FilterGroup" - }, - { - "$ref": "#/components/schemas/FilterRule" - } - ] + "required": ["results", "status"], + "type": "object" }, - "OrFilterGroup": { + "Pick_Comment.text-or-replyTo-or-mentions-or-textHtml_": { "properties": { - "or": { + "text": { + "type": "string" + }, + "replyTo": { + "type": "string" + }, + "mentions": { "items": { - "$ref": "#/components/schemas/FilterGroupItem" + "type": "string" }, "type": "array" }, - "id": { + "textHtml": { "type": "string" } }, - "required": ["or", "id"], - "type": "object" + "required": ["text", "mentions", "textHtml"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "AndFilterGroup": { + "Comment": { "properties": { - "and": { + "mentions": { "items": { - "$ref": "#/components/schemas/FilterGroupItem" + "type": "string" }, "type": "array" }, - "id": { + "canRemove": { + "type": "boolean" + }, + "resolved": { + "type": "boolean" + }, + "replies": { + "items": { + "$ref": "#/components/schemas/Comment" + }, + "type": "array" + }, + "replyTo": { + "type": "string" + }, + "user": { + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"], + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "textHtml": { + "type": "string" + }, + "text": { + "type": "string" + }, + "commentId": { "type": "string" } }, - "required": ["and", "id"], + "required": [ + "mentions", + "canRemove", + "resolved", + "user", + "createdAt", + "textHtml", + "text", + "commentId" + ], "type": "object" }, - "Filters": { + "ApiGetComments": { "properties": { - "tableCalculations": { - "$ref": "#/components/schemas/FilterGroup" - }, - "metrics": { - "$ref": "#/components/schemas/FilterGroup" + "results": { + "properties": {}, + "additionalProperties": { + "items": { + "$ref": "#/components/schemas/Comment" + }, + "type": "array" + }, + "type": "object" }, - "dimensions": { - "$ref": "#/components/schemas/FilterGroup" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } }, + "required": ["results", "status"], "type": "object" }, - "SortField": { + "ApiResolveComment": { "properties": { - "descending": { - "type": "boolean" - }, - "fieldId": { - "type": "string" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } }, - "required": ["descending", "fieldId"], + "required": ["status"], "type": "object" }, - "CustomFormatType": { - "enum": [ - "default", - "percent", - "currency", - "number", - "id", - "date", - "timestamp" - ], - "type": "string" - }, - "NumberSeparator": { - "enum": [ - "default", - "commaPeriod", - "spacePeriod", - "periodComma", - "noSeparatorPeriod" - ], - "type": "string" - }, - "Compact": { - "enum": ["thousands", "millions", "billions", "trillions"], - "type": "string" - }, - "CompactOrAlias": { - "anyOf": [ - { - "$ref": "#/components/schemas/Compact" + "ApiCsvUrlResponse": { + "properties": { + "results": { + "properties": { + "truncated": { + "type": "boolean" + }, + "status": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": ["truncated", "status", "url"], + "type": "object" }, - { + "status": { "type": "string", - "enum": [ - "K", - "thousand", - "M", - "million", - "B", - "billion", - "T", - "trillion" - ] + "enum": ["ok"], + "nullable": false } - ] + }, + "required": ["results", "status"], + "type": "object" }, - "TimeFrames": { + "DashboardTileTypes": { "enum": [ - "RAW", - "YEAR", - "QUARTER", - "MONTH", - "WEEK", - "DAY", - "HOUR", - "MINUTE", - "SECOND", - "MILLISECOND", - "DAY_OF_WEEK_INDEX", - "DAY_OF_MONTH_NUM", - "DAY_OF_YEAR_NUM", - "WEEK_NUM", - "MONTH_NUM", - "QUARTER_NUM", - "YEAR_NUM", - "DAY_OF_WEEK_NAME", - "MONTH_NAME", - "QUARTER_NAME", - "HOUR_OF_DAY_NUM", - "MINUTE_OF_HOUR_NUM" + "saved_chart", + "sql_chart", + "semantic_viewer_chart", + "markdown", + "loom" ], "type": "string" }, - "CustomFormat": { + "Required_CreateDashboardTileBase_": { "properties": { + "uuid": { + "type": "string" + }, "type": { - "$ref": "#/components/schemas/CustomFormatType" + "$ref": "#/components/schemas/DashboardTileTypes" }, - "round": { + "x": { "type": "number", "format": "double" }, - "separator": { - "$ref": "#/components/schemas/NumberSeparator" - }, - "currency": { - "type": "string" + "y": { + "type": "number", + "format": "double" }, - "compact": { - "$ref": "#/components/schemas/CompactOrAlias" + "h": { + "type": "number", + "format": "double" }, - "prefix": { - "type": "string" + "w": { + "type": "number", + "format": "double" }, - "suffix": { + "tabUuid": { "type": "string" - }, - "timeInterval": { - "$ref": "#/components/schemas/TimeFrames" } }, - "required": ["type"], + "required": ["uuid", "type", "x", "y", "h", "w"], "type": "object", - "additionalProperties": true + "description": "Make all properties in T required" }, - "TableCalculationType": { - "enum": ["number", "string", "date", "timestamp", "boolean"], + "DashboardTileBase": { + "$ref": "#/components/schemas/Required_CreateDashboardTileBase_" + }, + "DashboardTileTypes.SAVED_CHART": { + "enum": ["saved_chart"], "type": "string" }, - "TableCalculation": { + "DashboardChartTileProperties": { "properties": { - "type": { - "$ref": "#/components/schemas/TableCalculationType" - }, - "format": { - "$ref": "#/components/schemas/CustomFormat" - }, - "sql": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "name": { - "type": "string" + "properties": { + "properties": { + "chartSlug": { + "type": "string" + }, + "lastVersionChartKind": { + "allOf": [ + { + "$ref": "#/components/schemas/ChartKind" + } + ], + "nullable": true + }, + "chartName": { + "type": "string", + "nullable": true + }, + "belongsToDashboard": { + "type": "boolean" + }, + "savedChartUuid": { + "type": "string", + "nullable": true + }, + "hideTitle": { + "type": "boolean" + }, + "title": { + "type": "string" + } + }, + "required": ["savedChartUuid"], + "type": "object" }, - "index": { - "type": "number", - "format": "double" + "type": { + "$ref": "#/components/schemas/DashboardTileTypes.SAVED_CHART" } }, - "required": ["sql", "displayName", "name"], + "required": ["properties", "type"], "type": "object" }, - "MetricType": { - "enum": [ - "percentile", - "average", - "count", - "count_distinct", - "sum", - "min", - "max", - "number", - "median", - "string", - "date", - "timestamp", - "boolean" - ], - "type": "string" + "DashboardChartTile": { + "allOf": [ + { + "$ref": "#/components/schemas/DashboardTileBase" + }, + { + "$ref": "#/components/schemas/DashboardChartTileProperties" + } + ] }, - "Format": { - "enum": ["km", "mi", "usd", "gbp", "eur", "id", "percent"], + "DashboardTileTypes.MARKDOWN": { + "enum": ["markdown"], "type": "string" }, - "MetricFilterRule": { + "DashboardMarkdownTileProperties": { "properties": { - "values": { - "items": {}, - "type": "array" - }, - "operator": { - "$ref": "#/components/schemas/ConditionalOperator" - }, - "id": { - "type": "string" - }, - "target": { + "properties": { "properties": { - "fieldRef": { + "content": { + "type": "string" + }, + "title": { "type": "string" } }, - "required": ["fieldRef"], + "required": ["content", "title"], "type": "object" }, - "settings": {}, - "disabled": { - "type": "boolean" - }, - "required": { - "type": "boolean" + "type": { + "$ref": "#/components/schemas/DashboardTileTypes.MARKDOWN" } }, - "required": ["operator", "id", "target"], - "type": "object", - "additionalProperties": true + "required": ["properties", "type"], + "type": "object" }, - "AdditionalMetric": { - "properties": { - "label": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/MetricType" - }, - "description": { - "type": "string" - }, - "sql": { - "type": "string" + "DashboardMarkdownTile": { + "allOf": [ + { + "$ref": "#/components/schemas/DashboardTileBase" }, - "hidden": { - "type": "boolean" - }, - "round": { - "type": "number", - "format": "double" - }, - "compact": { - "$ref": "#/components/schemas/CompactOrAlias" - }, - "format": { - "$ref": "#/components/schemas/Format" - }, - "table": { - "type": "string" - }, - "name": { - "type": "string" - }, - "index": { - "type": "number", - "format": "double" - }, - "filters": { - "items": { - "$ref": "#/components/schemas/MetricFilterRule" - }, - "type": "array" - }, - "baseDimensionName": { - "type": "string" - }, - "uuid": { - "type": "string", - "nullable": true - }, - "percentile": { - "type": "number", - "format": "double" - }, - "formatOptions": { - "$ref": "#/components/schemas/CustomFormat" + { + "$ref": "#/components/schemas/DashboardMarkdownTileProperties" } - }, - "required": ["type", "sql", "table", "name"], - "type": "object", - "additionalProperties": true - }, - "CustomDimensionType.BIN": { - "enum": ["bin"], - "type": "string" + ] }, - "BinType": { - "enum": ["fixed_number", "fixed_width", "custom_range"], + "DashboardTileTypes.LOOM": { + "enum": ["loom"], "type": "string" }, - "BinRange": { + "DashboardLoomTileProperties": { "properties": { - "to": { - "type": "number", - "format": "double" + "properties": { + "properties": { + "url": { + "type": "string" + }, + "hideTitle": { + "type": "boolean" + }, + "title": { + "type": "string" + } + }, + "required": ["url", "title"], + "type": "object" }, - "from": { - "type": "number", - "format": "double" + "type": { + "$ref": "#/components/schemas/DashboardTileTypes.LOOM" } }, + "required": ["properties", "type"], "type": "object" }, - "CustomDimensionType": { - "enum": ["bin", "sql"], - "type": "string" - }, - "CustomBinDimension": { - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "table": { - "type": "string" - }, - "type": { - "$ref": "#/components/schemas/CustomDimensionType.BIN" - }, - "dimensionId": { - "$ref": "#/components/schemas/FieldId" - }, - "binType": { - "$ref": "#/components/schemas/BinType" - }, - "binNumber": { - "type": "number", - "format": "double" - }, - "binWidth": { - "type": "number", - "format": "double" + "DashboardLoomTile": { + "allOf": [ + { + "$ref": "#/components/schemas/DashboardTileBase" }, - "customRange": { - "items": { - "$ref": "#/components/schemas/BinRange" - }, - "type": "array" + { + "$ref": "#/components/schemas/DashboardLoomTileProperties" } - }, - "required": [ - "id", - "name", - "table", - "type", - "dimensionId", - "binType" - ], - "type": "object", - "additionalProperties": true - }, - "CustomDimensionType.SQL": { - "enum": ["sql"], - "type": "string" + ] }, - "DimensionType": { - "enum": ["string", "number", "timestamp", "date", "boolean"], + "DashboardTileTypes.SQL_CHART": { + "enum": ["sql_chart"], "type": "string" }, - "CustomSqlDimension": { + "DashboardSqlChartTileProperties": { "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "table": { - "type": "string" + "properties": { + "properties": { + "chartSlug": { + "type": "string" + }, + "hideTitle": { + "type": "boolean" + }, + "chartName": { + "type": "string" + }, + "savedSqlUuid": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string" + } + }, + "required": ["chartName", "savedSqlUuid"], + "type": "object" }, "type": { - "$ref": "#/components/schemas/CustomDimensionType.SQL" - }, - "sql": { - "type": "string" - }, - "dimensionType": { - "$ref": "#/components/schemas/DimensionType" + "$ref": "#/components/schemas/DashboardTileTypes.SQL_CHART" } }, - "required": [ - "id", - "name", - "table", - "type", - "sql", - "dimensionType" - ], - "type": "object", - "additionalProperties": true + "required": ["properties", "type"], + "type": "object" }, - "CustomDimension": { - "anyOf": [ + "DashboardSqlChartTile": { + "allOf": [ { - "$ref": "#/components/schemas/CustomBinDimension" + "$ref": "#/components/schemas/DashboardTileBase" }, { - "$ref": "#/components/schemas/CustomSqlDimension" + "$ref": "#/components/schemas/DashboardSqlChartTileProperties" } ] }, - "Pick_CompiledDimension.label-or-name_": { - "properties": { - "name": { - "type": "string" - }, - "label": { - "type": "string" - } - }, - "required": ["name", "label"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "DashboardTileTypes.SEMANTIC_VIEWER_CHART": { + "enum": ["semantic_viewer_chart"], + "type": "string" }, - "MetricQuery": { + "DashboardSemanticViewerChartTileProperties": { "properties": { - "metadata": { + "properties": { "properties": { - "hasADateDimension": { - "$ref": "#/components/schemas/Pick_CompiledDimension.label-or-name_" + "chartSlug": { + "type": "string" + }, + "hideTitle": { + "type": "boolean" + }, + "chartName": { + "type": "string" + }, + "savedSemanticViewerChartUuid": { + "type": "string", + "nullable": true + }, + "title": { + "type": "string" } }, - "required": ["hasADateDimension"], + "required": [ + "chartName", + "savedSemanticViewerChartUuid" + ], "type": "object" }, - "timezone": { - "type": "string" + "type": { + "$ref": "#/components/schemas/DashboardTileTypes.SEMANTIC_VIEWER_CHART" + } + }, + "required": ["properties", "type"], + "type": "object" + }, + "DashboardSemanticViewerChartTile": { + "allOf": [ + { + "$ref": "#/components/schemas/DashboardTileBase" }, - "customDimensions": { - "items": { - "$ref": "#/components/schemas/CustomDimension" - }, - "type": "array" - }, - "additionalMetrics": { - "items": { - "$ref": "#/components/schemas/AdditionalMetric" - }, - "type": "array" - }, - "tableCalculations": { - "items": { - "$ref": "#/components/schemas/TableCalculation" - }, - "type": "array" - }, - "limit": { - "type": "number", - "format": "double" + { + "$ref": "#/components/schemas/DashboardSemanticViewerChartTileProperties" + } + ] + }, + "DashboardTile": { + "anyOf": [ + { + "$ref": "#/components/schemas/DashboardChartTile" }, - "sorts": { - "items": { - "$ref": "#/components/schemas/SortField" - }, - "type": "array" + { + "$ref": "#/components/schemas/DashboardMarkdownTile" }, - "filters": { - "$ref": "#/components/schemas/Filters" + { + "$ref": "#/components/schemas/DashboardLoomTile" }, - "metrics": { - "items": { - "$ref": "#/components/schemas/FieldId" - }, - "type": "array" + { + "$ref": "#/components/schemas/DashboardSqlChartTile" }, - "dimensions": { - "items": { - "$ref": "#/components/schemas/FieldId" - }, - "type": "array" + { + "$ref": "#/components/schemas/DashboardSemanticViewerChartTile" + } + ] + }, + "DashboardFieldTarget": { + "properties": { + "tableName": { + "type": "string" }, - "exploreName": { + "fieldId": { "type": "string" } }, - "required": [ - "tableCalculations", - "limit", - "sorts", - "filters", - "metrics", - "dimensions", - "exploreName" - ], + "required": ["tableName", "fieldId"], "type": "object" }, - "ChartType.BIG_NUMBER": { - "enum": ["big_number"], - "type": "string" - }, - "ComparisonFormatTypes": { - "enum": ["raw", "percentage"], - "type": "string" - }, - "BigNumber": { + "FilterRule_ConditionalOperator.T.V.any_": { "properties": { - "comparisonLabel": { - "type": "string" + "values": { + "items": {}, + "type": "array" }, - "flipColors": { - "type": "boolean" + "operator": { + "$ref": "#/components/schemas/ConditionalOperator" }, - "comparisonFormat": { - "$ref": "#/components/schemas/ComparisonFormatTypes" + "id": { + "type": "string" }, - "showComparison": { - "type": "boolean" + "target": { + "$ref": "#/components/schemas/DashboardFieldTarget" }, - "showBigNumberLabel": { + "settings": {}, + "disabled": { "type": "boolean" }, - "selectedField": { - "type": "string" - }, - "style": { - "$ref": "#/components/schemas/CompactOrAlias" - }, - "label": { - "type": "string" + "required": { + "type": "boolean" } }, - "type": "object" + "required": ["operator", "id", "target"], + "type": "object", + "additionalProperties": true }, - "BigNumberConfig": { - "properties": { - "config": { - "$ref": "#/components/schemas/BigNumber" + "Record_string.DashboardTileTarget_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "DashboardFilterRule": { + "allOf": [ + { + "$ref": "#/components/schemas/FilterRule_ConditionalOperator.T.V.any_" }, - "type": { - "$ref": "#/components/schemas/ChartType.BIG_NUMBER" + { + "properties": { + "label": { + "type": "string" + }, + "tileTargets": { + "$ref": "#/components/schemas/Record_string.DashboardTileTarget_" + } + }, + "type": "object" } - }, - "required": ["type"], - "type": "object" - }, - "ChartType.CARTESIAN": { - "enum": ["cartesian"], - "type": "string" + ] }, - "Partial_CompleteCartesianChartLayout_": { + "DashboardFilters": { "properties": { - "xField": { - "type": "string" - }, - "yField": { + "tableCalculations": { "items": { - "type": "string" + "$ref": "#/components/schemas/DashboardFilterRule" }, "type": "array" }, - "flipAxes": { - "type": "boolean" - }, - "showGridX": { - "type": "boolean" + "metrics": { + "items": { + "$ref": "#/components/schemas/DashboardFilterRule" + }, + "type": "array" }, - "showGridY": { - "type": "boolean" + "dimensions": { + "items": { + "$ref": "#/components/schemas/DashboardFilterRule" + }, + "type": "array" } }, - "type": "object", - "description": "Make all properties in T optional" - }, - "CartesianChartLayout": { - "$ref": "#/components/schemas/Partial_CompleteCartesianChartLayout_" + "required": ["tableCalculations", "metrics", "dimensions"], + "type": "object" }, - "EchartsLegend": { + "UpdatedByUser": { "properties": { - "icon": { - "type": "string", - "enum": [ - "circle", - "rect", - "roundRect", - "triangle", - "diamond", - "pin", - "arrow", - "none" - ] - }, - "align": { - "type": "string", - "enum": ["auto", "left", "right"] - }, - "height": { - "type": "string" - }, - "width": { + "userUuid": { "type": "string" }, - "left": { + "firstName": { "type": "string" }, - "bottom": { + "lastName": { "type": "string" + } + }, + "required": ["userUuid", "firstName", "lastName"], + "type": "object", + "additionalProperties": true + }, + "DashboardTab": { + "properties": { + "order": { + "type": "number", + "format": "double" }, - "right": { + "name": { "type": "string" }, - "top": { + "uuid": { "type": "string" - }, - "orient": { - "type": "string", - "enum": ["horizontal", "vertical"] - }, - "type": { - "type": "string", - "enum": ["plain", "scroll"] - }, - "show": { - "type": "boolean" } }, + "required": ["order", "name", "uuid"], "type": "object" }, - "EchartsGrid": { + "Pick_Dashboard.Exclude_keyofDashboard.isPrivate-or-access__": { "properties": { - "height": { + "name": { "type": "string" }, - "width": { + "description": { "type": "string" }, - "left": { + "uuid": { "type": "string" }, - "bottom": { + "spaceName": { "type": "string" }, - "right": { + "spaceUuid": { "type": "string" }, - "top": { + "projectUuid": { "type": "string" }, - "containLabel": { - "type": "boolean" - } - }, - "type": "object" - }, - "PivotValue": { - "properties": { - "value": {}, - "field": { + "organizationUuid": { + "type": "string" + }, + "pinnedListUuid": { + "type": "string", + "nullable": true + }, + "slug": { "type": "string" + }, + "dashboardVersionId": { + "type": "number", + "format": "double" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "tiles": { + "items": { + "$ref": "#/components/schemas/DashboardTile" + }, + "type": "array" + }, + "filters": { + "$ref": "#/components/schemas/DashboardFilters" + }, + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" + }, + "views": { + "type": "number", + "format": "double" + }, + "firstViewedAt": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "string" + } + ], + "nullable": true + }, + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true + }, + "tabs": { + "items": { + "$ref": "#/components/schemas/DashboardTab" + }, + "type": "array" } }, - "required": ["value", "field"], - "type": "object" + "required": [ + "name", + "uuid", + "spaceName", + "spaceUuid", + "projectUuid", + "organizationUuid", + "pinnedListUuid", + "slug", + "dashboardVersionId", + "updatedAt", + "tiles", + "filters", + "views", + "firstViewedAt", + "pinnedListOrder", + "tabs" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "PivotReference": { + "Omit_Dashboard.isPrivate-or-access_": { + "$ref": "#/components/schemas/Pick_Dashboard.Exclude_keyofDashboard.isPrivate-or-access__", + "description": "Construct a type with the properties of T except for those in type K." + }, + "DashboardDAO": { + "$ref": "#/components/schemas/Omit_Dashboard.isPrivate-or-access_" + }, + "ApiPromoteDashboardResponse": { "properties": { - "pivotValues": { - "items": { - "$ref": "#/components/schemas/PivotValue" - }, - "type": "array" + "results": { + "$ref": "#/components/schemas/DashboardDAO" }, - "field": { - "type": "string" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } }, - "required": ["field"], + "required": ["results", "status"], "type": "object" }, - "CartesianSeriesType": { - "enum": ["line", "bar", "scatter", "area"], + "PromotionAction": { + "enum": ["no changes", "create", "update", "delete"], "type": "string" }, - "MarkLineData": { + "Pick_SpaceSummary.Exclude_keyofSpaceSummary.userAccess__": { "properties": { - "dynamicValue": { - "type": "string", - "enum": ["average"], - "nullable": false - }, - "label": { - "properties": { - "position": { - "type": "string", - "enum": ["start", "middle", "end"] - }, - "formatter": { - "type": "string" - } - }, - "type": "object" - }, - "lineStyle": { - "properties": { - "color": { - "type": "string" - } - }, - "required": ["color"], - "type": "object" + "name": { + "type": "string" }, "uuid": { "type": "string" }, - "type": { + "projectUuid": { "type": "string" }, - "value": { + "organizationUuid": { "type": "string" }, - "name": { - "type": "string" + "pinnedListUuid": { + "type": "string", + "nullable": true }, - "xAxis": { + "slug": { "type": "string" }, - "yAxis": { - "type": "string" + "isPrivate": { + "type": "boolean" + }, + "access": { + "items": { + "type": "string" + }, + "type": "array" + }, + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true + }, + "chartCount": { + "type": "number", + "format": "double" + }, + "dashboardCount": { + "type": "number", + "format": "double" } }, - "required": ["uuid"], - "type": "object" + "required": [ + "name", + "uuid", + "projectUuid", + "organizationUuid", + "pinnedListUuid", + "slug", + "isPrivate", + "access", + "pinnedListOrder", + "chartCount", + "dashboardCount" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "MarkLine": { - "properties": { - "label": { - "properties": { - "formatter": { - "type": "string" - } - }, - "type": "object" + "Omit_SpaceSummary.userAccess_": { + "$ref": "#/components/schemas/Pick_SpaceSummary.Exclude_keyofSpaceSummary.userAccess__", + "description": "Construct a type with the properties of T except for those in type K." + }, + "PromotedSpace": { + "$ref": "#/components/schemas/Omit_SpaceSummary.userAccess_" + }, + "PromotedDashboard": { + "allOf": [ + { + "$ref": "#/components/schemas/DashboardDAO" }, - "lineStyle": { + { "properties": { - "type": { - "type": "string" - }, - "width": { - "type": "number", - "format": "double" - }, - "color": { + "spaceSlug": { "type": "string" } }, - "required": ["type", "width", "color"], + "required": ["spaceSlug"], "type": "object" + } + ] + }, + "FieldId": { + "type": "string" + }, + "FilterGroup": { + "anyOf": [ + { + "$ref": "#/components/schemas/OrFilterGroup" }, - "symbol": { + { + "$ref": "#/components/schemas/AndFilterGroup" + } + ] + }, + "FieldTarget": { + "properties": { + "fieldId": { "type": "string" - }, - "data": { - "items": { - "$ref": "#/components/schemas/MarkLineData" - }, - "type": "array" } }, - "required": ["data"], + "required": ["fieldId"], "type": "object" }, - "Series": { + "FilterRule": { "properties": { - "markLine": { - "$ref": "#/components/schemas/MarkLine" - }, - "smooth": { - "type": "boolean" + "values": { + "items": {}, + "type": "array" }, - "showSymbol": { - "type": "boolean" + "operator": { + "$ref": "#/components/schemas/ConditionalOperator" }, - "areaStyle": { - "properties": {}, - "type": "object" + "id": { + "type": "string" }, - "hidden": { - "type": "boolean" + "target": { + "$ref": "#/components/schemas/FieldTarget" }, - "label": { - "properties": { - "position": { - "type": "string", - "enum": [ - "left", - "top", - "right", - "bottom", - "inside" - ] - }, - "show": { - "type": "boolean" - } - }, - "type": "object" + "settings": {}, + "disabled": { + "type": "boolean" }, - "yAxisIndex": { - "type": "number", - "format": "double" + "required": { + "type": "boolean" + } + }, + "required": ["operator", "id", "target"], + "type": "object", + "additionalProperties": true + }, + "FilterGroupItem": { + "anyOf": [ + { + "$ref": "#/components/schemas/FilterGroup" }, - "color": { - "type": "string" + { + "$ref": "#/components/schemas/FilterRule" + } + ] + }, + "OrFilterGroup": { + "properties": { + "or": { + "items": { + "$ref": "#/components/schemas/FilterGroupItem" + }, + "type": "array" }, - "name": { + "id": { "type": "string" - }, - "stackLabel": { - "properties": { - "show": { - "type": "boolean" - } + } + }, + "required": ["or", "id"], + "type": "object" + }, + "AndFilterGroup": { + "properties": { + "and": { + "items": { + "$ref": "#/components/schemas/FilterGroupItem" }, - "type": "object" + "type": "array" }, - "stack": { + "id": { "type": "string" + } + }, + "required": ["and", "id"], + "type": "object" + }, + "Filters": { + "properties": { + "tableCalculations": { + "$ref": "#/components/schemas/FilterGroup" }, - "type": { - "$ref": "#/components/schemas/CartesianSeriesType" + "metrics": { + "$ref": "#/components/schemas/FilterGroup" }, - "encode": { - "properties": { - "y": { - "type": "string" - }, - "x": { - "type": "string" - }, - "yRef": { - "$ref": "#/components/schemas/PivotReference" - }, - "xRef": { - "$ref": "#/components/schemas/PivotReference" - } - }, - "required": ["yRef", "xRef"], - "type": "object" + "dimensions": { + "$ref": "#/components/schemas/FilterGroup" } }, - "required": ["type", "encode"], "type": "object" }, - "Axis": { + "SortField": { "properties": { - "rotate": { - "type": "number", - "format": "double" - }, - "inverse": { + "descending": { "type": "boolean" }, - "maxOffset": { + "fieldId": { "type": "string" + } + }, + "required": ["descending", "fieldId"], + "type": "object" + }, + "TableCalculationType": { + "enum": ["number", "string", "date", "timestamp", "boolean"], + "type": "string" + }, + "TableCalculation": { + "properties": { + "type": { + "$ref": "#/components/schemas/TableCalculationType" }, - "minOffset": { - "type": "string" + "format": { + "$ref": "#/components/schemas/CustomFormat" }, - "max": { + "sql": { "type": "string" }, - "min": { + "displayName": { "type": "string" }, "name": { "type": "string" + }, + "index": { + "type": "number", + "format": "double" } }, + "required": ["sql", "displayName", "name"], "type": "object" }, - "Partial_CompleteEChartsConfig_": { + "AdditionalMetric": { "properties": { - "legend": { - "$ref": "#/components/schemas/EchartsLegend" + "label": { + "type": "string" }, - "grid": { - "$ref": "#/components/schemas/EchartsGrid" + "type": { + "$ref": "#/components/schemas/MetricType" }, - "series": { - "items": { - "$ref": "#/components/schemas/Series" - }, - "type": "array" + "description": { + "type": "string" }, - "xAxis": { - "items": { - "$ref": "#/components/schemas/Axis" - }, - "type": "array" + "sql": { + "type": "string" }, - "yAxis": { + "hidden": { + "type": "boolean" + }, + "round": { + "type": "number", + "format": "double" + }, + "compact": { + "$ref": "#/components/schemas/CompactOrAlias" + }, + "format": { + "$ref": "#/components/schemas/Format" + }, + "table": { + "type": "string" + }, + "name": { + "type": "string" + }, + "index": { + "type": "number", + "format": "double" + }, + "filters": { "items": { - "$ref": "#/components/schemas/Axis" + "$ref": "#/components/schemas/MetricFilterRule" }, "type": "array" + }, + "baseDimensionName": { + "type": "string" + }, + "uuid": { + "type": "string", + "nullable": true + }, + "percentile": { + "type": "number", + "format": "double" + }, + "formatOptions": { + "$ref": "#/components/schemas/CustomFormat" } }, + "required": ["type", "sql", "table", "name"], "type": "object", - "description": "Make all properties in T optional" + "additionalProperties": true }, - "EChartsConfig": { - "$ref": "#/components/schemas/Partial_CompleteEChartsConfig_" + "CustomDimensionType.BIN": { + "enum": ["bin"], + "type": "string" }, - "Record_string.SeriesMetadata_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" + "BinType": { + "enum": ["fixed_number", "fixed_width", "custom_range"], + "type": "string" }, - "CartesianChart": { + "BinRange": { "properties": { - "metadata": { - "$ref": "#/components/schemas/Record_string.SeriesMetadata_" - }, - "eChartsConfig": { - "$ref": "#/components/schemas/EChartsConfig" + "to": { + "type": "number", + "format": "double" }, - "layout": { - "$ref": "#/components/schemas/CartesianChartLayout" + "from": { + "type": "number", + "format": "double" } }, - "required": ["eChartsConfig", "layout"], "type": "object" }, - "CartesianChartConfig": { - "properties": { - "config": { - "$ref": "#/components/schemas/CartesianChart" + "CustomDimensionType": { + "enum": ["bin", "sql"], + "type": "string" + }, + "CustomBinDimension": { + "properties": { + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "table": { + "type": "string" }, "type": { - "$ref": "#/components/schemas/ChartType.CARTESIAN" + "$ref": "#/components/schemas/CustomDimensionType.BIN" + }, + "dimensionId": { + "$ref": "#/components/schemas/FieldId" + }, + "binType": { + "$ref": "#/components/schemas/BinType" + }, + "binNumber": { + "type": "number", + "format": "double" + }, + "binWidth": { + "type": "number", + "format": "double" + }, + "customRange": { + "items": { + "$ref": "#/components/schemas/BinRange" + }, + "type": "array" } }, - "required": ["type"], - "type": "object" + "required": [ + "id", + "name", + "table", + "type", + "dimensionId", + "binType" + ], + "type": "object", + "additionalProperties": true }, - "ChartType.CUSTOM": { - "enum": ["custom"], + "CustomDimensionType.SQL": { + "enum": ["sql"], "type": "string" }, - "CustomVis": { + "CustomSqlDimension": { "properties": { - "spec": { - "additionalProperties": true, - "type": "object" + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "table": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/CustomDimensionType.SQL" + }, + "sql": { + "type": "string" + }, + "dimensionType": { + "$ref": "#/components/schemas/DimensionType" } }, - "type": "object" + "required": [ + "id", + "name", + "table", + "type", + "sql", + "dimensionType" + ], + "type": "object", + "additionalProperties": true }, - "CustomVisConfig": { + "CustomDimension": { + "anyOf": [ + { + "$ref": "#/components/schemas/CustomBinDimension" + }, + { + "$ref": "#/components/schemas/CustomSqlDimension" + } + ] + }, + "Pick_CompiledDimension.label-or-name_": { "properties": { - "config": { - "$ref": "#/components/schemas/CustomVis" + "name": { + "type": "string" }, - "type": { - "$ref": "#/components/schemas/ChartType.CUSTOM" + "label": { + "type": "string" } }, - "required": ["type"], - "type": "object" - }, - "ChartType.PIE": { - "enum": ["pie"], - "type": "string" - }, - "PieChartValueLabel": { - "type": "string", - "enum": ["hidden", "inside", "outside"], - "nullable": false - }, - "Record_string.string_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" - }, - "Record_string.Partial_PieChartValueOptions__": { - "properties": {}, + "required": ["name", "label"], "type": "object", - "description": "Construct a type with a set of properties K of type T" - }, - "PieChartLegendPosition": { - "type": "string", - "enum": ["horizontal", "vertical"], - "nullable": false + "description": "From T, pick a set of properties whose keys are in the union K" }, - "PieChart": { + "MetricQuery": { "properties": { "metadata": { - "$ref": "#/components/schemas/Record_string.SeriesMetadata_" + "properties": { + "hasADateDimension": { + "$ref": "#/components/schemas/Pick_CompiledDimension.label-or-name_" + } + }, + "required": ["hasADateDimension"], + "type": "object" }, - "legendPosition": { - "$ref": "#/components/schemas/PieChartLegendPosition" + "timezone": { + "type": "string" }, - "showLegend": { - "type": "boolean" + "customDimensions": { + "items": { + "$ref": "#/components/schemas/CustomDimension" + }, + "type": "array" }, - "groupSortOverrides": { + "additionalMetrics": { "items": { - "type": "string" + "$ref": "#/components/schemas/AdditionalMetric" }, "type": "array" }, - "groupValueOptionOverrides": { - "$ref": "#/components/schemas/Record_string.Partial_PieChartValueOptions__" + "tableCalculations": { + "items": { + "$ref": "#/components/schemas/TableCalculation" + }, + "type": "array" }, - "groupColorOverrides": { - "$ref": "#/components/schemas/Record_string.string_" + "limit": { + "type": "number", + "format": "double" }, - "groupLabelOverrides": { - "$ref": "#/components/schemas/Record_string.string_" + "sorts": { + "items": { + "$ref": "#/components/schemas/SortField" + }, + "type": "array" }, - "showPercentage": { - "type": "boolean" + "filters": { + "$ref": "#/components/schemas/Filters" }, - "showValue": { + "metrics": { + "items": { + "$ref": "#/components/schemas/FieldId" + }, + "type": "array" + }, + "dimensions": { + "items": { + "$ref": "#/components/schemas/FieldId" + }, + "type": "array" + }, + "exploreName": { + "type": "string" + } + }, + "required": [ + "tableCalculations", + "limit", + "sorts", + "filters", + "metrics", + "dimensions", + "exploreName" + ], + "type": "object" + }, + "ChartType.BIG_NUMBER": { + "enum": ["big_number"], + "type": "string" + }, + "ComparisonFormatTypes": { + "enum": ["raw", "percentage"], + "type": "string" + }, + "BigNumber": { + "properties": { + "comparisonLabel": { + "type": "string" + }, + "flipColors": { "type": "boolean" }, - "valueLabel": { - "$ref": "#/components/schemas/PieChartValueLabel" + "comparisonFormat": { + "$ref": "#/components/schemas/ComparisonFormatTypes" }, - "isDonut": { + "showComparison": { "type": "boolean" }, - "metricId": { + "showBigNumberLabel": { + "type": "boolean" + }, + "selectedField": { "type": "string" }, - "groupFieldIds": { - "items": { - "type": "string" - }, - "type": "array" + "style": { + "$ref": "#/components/schemas/CompactOrAlias" + }, + "label": { + "type": "string" } }, "type": "object" }, - "PieChartConfig": { + "BigNumberConfig": { "properties": { "config": { - "$ref": "#/components/schemas/PieChart" + "$ref": "#/components/schemas/BigNumber" }, "type": { - "$ref": "#/components/schemas/ChartType.PIE" + "$ref": "#/components/schemas/ChartType.BIG_NUMBER" } }, "required": ["type"], "type": "object" }, - "ChartType.FUNNEL": { - "enum": ["funnel"], + "ChartType.CARTESIAN": { + "enum": ["cartesian"], "type": "string" }, - "FunnelChartDataInput": { - "enum": ["row", "column"], - "type": "string" - }, - "FunnelChartLabelPosition": { - "enum": ["inside", "left", "right", "hidden"], - "type": "string" + "Partial_CompleteCartesianChartLayout_": { + "properties": { + "xField": { + "type": "string" + }, + "yField": { + "items": { + "type": "string" + }, + "type": "array" + }, + "flipAxes": { + "type": "boolean" + }, + "showGridX": { + "type": "boolean" + }, + "showGridY": { + "type": "boolean" + } + }, + "type": "object", + "description": "Make all properties in T optional" }, - "FunnelChartLegendPosition": { - "enum": ["horizontal", "vertical"], - "type": "string" + "CartesianChartLayout": { + "$ref": "#/components/schemas/Partial_CompleteCartesianChartLayout_" }, - "FunnelChart": { + "EchartsLegend": { "properties": { - "legendPosition": { - "$ref": "#/components/schemas/FunnelChartLegendPosition" + "icon": { + "type": "string", + "enum": [ + "circle", + "rect", + "roundRect", + "triangle", + "diamond", + "pin", + "arrow", + "none" + ] }, - "showLegend": { - "type": "boolean" + "align": { + "type": "string", + "enum": ["auto", "left", "right"] }, - "labels": { - "properties": { - "showPercentage": { - "type": "boolean" - }, - "showValue": { - "type": "boolean" - }, - "position": { - "$ref": "#/components/schemas/FunnelChartLabelPosition" - } - }, - "type": "object" + "height": { + "type": "string" }, - "colorOverrides": { - "$ref": "#/components/schemas/Record_string.string_" + "width": { + "type": "string" }, - "labelOverrides": { - "$ref": "#/components/schemas/Record_string.string_" + "left": { + "type": "string" }, - "metadata": { - "$ref": "#/components/schemas/Record_string.SeriesMetadata_" + "bottom": { + "type": "string" }, - "fieldId": { + "right": { "type": "string" }, - "dataInput": { - "$ref": "#/components/schemas/FunnelChartDataInput" + "top": { + "type": "string" + }, + "orient": { + "type": "string", + "enum": ["horizontal", "vertical"] + }, + "type": { + "type": "string", + "enum": ["plain", "scroll"] + }, + "show": { + "type": "boolean" } }, "type": "object" }, - "FunnelChartConfig": { + "EchartsGrid": { "properties": { - "config": { - "$ref": "#/components/schemas/FunnelChart" + "height": { + "type": "string" }, - "type": { - "$ref": "#/components/schemas/ChartType.FUNNEL" + "width": { + "type": "string" + }, + "left": { + "type": "string" + }, + "bottom": { + "type": "string" + }, + "right": { + "type": "string" + }, + "top": { + "type": "string" + }, + "containLabel": { + "type": "boolean" } }, - "required": ["type"], "type": "object" }, - "ChartType.TABLE": { - "enum": ["table"], - "type": "string" - }, - "Record_string.ColumnProperties_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" + "PivotValue": { + "properties": { + "value": {}, + "field": { + "type": "string" + } + }, + "required": ["value", "field"], + "type": "object" }, - "ConditionalRule_ConditionalOperator.number_": { + "PivotReference": { "properties": { - "values": { + "pivotValues": { "items": { - "type": "number", - "format": "double" + "$ref": "#/components/schemas/PivotValue" }, "type": "array" }, - "operator": { - "$ref": "#/components/schemas/ConditionalOperator" - }, - "id": { + "field": { "type": "string" } }, - "required": ["operator", "id"], + "required": ["field"], "type": "object" }, - "ConditionalFormattingWithConditionalOperator": { - "allOf": [ - { - "$ref": "#/components/schemas/ConditionalRule_ConditionalOperator.number_" + "CartesianSeriesType": { + "enum": ["line", "bar", "scatter", "area"], + "type": "string" + }, + "MarkLineData": { + "properties": { + "dynamicValue": { + "type": "string", + "enum": ["average"], + "nullable": false }, - { + "label": { "properties": { - "values": { - "items": { - "type": "number", - "format": "double" - }, - "type": "array" + "position": { + "type": "string", + "enum": ["start", "middle", "end"] + }, + "formatter": { + "type": "string" } }, - "required": ["values"], "type": "object" - } - ] - }, - "ConditionalFormattingConfigWithSingleColor": { - "properties": { - "rules": { - "items": { - "$ref": "#/components/schemas/ConditionalFormattingWithConditionalOperator" + }, + "lineStyle": { + "properties": { + "color": { + "type": "string" + } }, - "type": "array" + "required": ["color"], + "type": "object" }, - "color": { + "uuid": { "type": "string" }, - "target": { - "allOf": [ - { - "$ref": "#/components/schemas/FieldTarget" - } - ], - "nullable": true - } - }, - "required": ["rules", "color", "target"], - "type": "object" - }, - "ConditionalFormattingWithRange": { - "properties": { - "max": { - "type": "number", - "format": "double" + "type": { + "type": "string" }, - "min": { - "type": "number", - "format": "double" + "value": { + "type": "string" + }, + "name": { + "type": "string" + }, + "xAxis": { + "type": "string" + }, + "yAxis": { + "type": "string" } }, - "required": ["max", "min"], + "required": ["uuid"], "type": "object" }, - "ConditionalFormattingConfigWithColorRange": { + "MarkLine": { "properties": { - "rule": { - "$ref": "#/components/schemas/ConditionalFormattingWithRange" - }, - "color": { + "label": { "properties": { - "steps": { - "type": "number", - "enum": [5], - "nullable": false - }, - "end": { - "type": "string" - }, - "start": { + "formatter": { "type": "string" } }, - "required": ["steps", "end", "start"], "type": "object" }, - "target": { - "allOf": [ - { - "$ref": "#/components/schemas/FieldTarget" + "lineStyle": { + "properties": { + "type": { + "type": "string" + }, + "width": { + "type": "number", + "format": "double" + }, + "color": { + "type": "string" } - ], - "nullable": true - } - }, - "required": ["rule", "color", "target"], - "type": "object" - }, - "ConditionalFormattingConfig": { - "anyOf": [ - { - "$ref": "#/components/schemas/ConditionalFormattingConfigWithSingleColor" + }, + "required": ["type", "width", "color"], + "type": "object" }, - { - "$ref": "#/components/schemas/ConditionalFormattingConfigWithColorRange" - } - ] - }, - "TableChart": { - "properties": { - "metricsAsRows": { - "type": "boolean" + "symbol": { + "type": "string" }, - "conditionalFormattings": { + "data": { "items": { - "$ref": "#/components/schemas/ConditionalFormattingConfig" + "$ref": "#/components/schemas/MarkLineData" }, "type": "array" + } + }, + "required": ["data"], + "type": "object" + }, + "Series": { + "properties": { + "markLine": { + "$ref": "#/components/schemas/MarkLine" }, - "columns": { - "$ref": "#/components/schemas/Record_string.ColumnProperties_" - }, - "showSubtotals": { + "smooth": { "type": "boolean" }, - "showResultsTotal": { + "showSymbol": { "type": "boolean" }, - "hideRowNumbers": { - "type": "boolean" + "areaStyle": { + "properties": {}, + "type": "object" }, - "showTableNames": { + "hidden": { "type": "boolean" }, - "showRowCalculation": { - "type": "boolean" + "label": { + "properties": { + "position": { + "type": "string", + "enum": [ + "left", + "top", + "right", + "bottom", + "inside" + ] + }, + "show": { + "type": "boolean" + } + }, + "type": "object" }, - "showColumnCalculation": { - "type": "boolean" - } - }, - "type": "object" - }, - "TableChartConfig": { - "properties": { - "config": { - "$ref": "#/components/schemas/TableChart" + "yAxisIndex": { + "type": "number", + "format": "double" }, - "type": { - "$ref": "#/components/schemas/ChartType.TABLE" - } - }, - "required": ["type"], - "type": "object" - }, - "ChartConfig": { - "anyOf": [ - { - "$ref": "#/components/schemas/BigNumberConfig" + "color": { + "type": "string" }, - { - "$ref": "#/components/schemas/CartesianChartConfig" + "name": { + "type": "string" }, - { - "$ref": "#/components/schemas/CustomVisConfig" + "stackLabel": { + "properties": { + "show": { + "type": "boolean" + } + }, + "type": "object" }, - { - "$ref": "#/components/schemas/PieChartConfig" + "stack": { + "type": "string" }, - { - "$ref": "#/components/schemas/FunnelChartConfig" + "type": { + "$ref": "#/components/schemas/CartesianSeriesType" }, - { - "$ref": "#/components/schemas/TableChartConfig" + "encode": { + "properties": { + "y": { + "type": "string" + }, + "x": { + "type": "string" + }, + "yRef": { + "$ref": "#/components/schemas/PivotReference" + }, + "xRef": { + "$ref": "#/components/schemas/PivotReference" + } + }, + "required": ["yRef", "xRef"], + "type": "object" } - ] + }, + "required": ["type", "encode"], + "type": "object" }, - "Pick_SavedChart.Exclude_keyofSavedChart.isPrivate-or-access__": { + "Axis": { "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "uuid": { - "type": "string" + "rotate": { + "type": "number", + "format": "double" }, - "spaceName": { - "type": "string" + "inverse": { + "type": "boolean" }, - "spaceUuid": { + "maxOffset": { "type": "string" }, - "projectUuid": { + "minOffset": { "type": "string" }, - "organizationUuid": { + "max": { "type": "string" }, - "pinnedListUuid": { - "type": "string", - "nullable": true - }, - "dashboardUuid": { - "type": "string", - "nullable": true - }, - "dashboardName": { - "type": "string", - "nullable": true - }, - "slug": { + "min": { "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time" - }, - "updatedByUser": { - "$ref": "#/components/schemas/UpdatedByUser" - }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true - }, - "tableName": { + "name": { "type": "string" + } + }, + "type": "object" + }, + "Partial_CompleteEChartsConfig_": { + "properties": { + "legend": { + "$ref": "#/components/schemas/EchartsLegend" }, - "metricQuery": { - "$ref": "#/components/schemas/MetricQuery" + "grid": { + "$ref": "#/components/schemas/EchartsGrid" }, - "pivotConfig": { - "properties": { - "columns": { - "items": { - "type": "string" - }, - "type": "array" - } + "series": { + "items": { + "$ref": "#/components/schemas/Series" }, - "required": ["columns"], - "type": "object" - }, - "chartConfig": { - "$ref": "#/components/schemas/ChartConfig" + "type": "array" }, - "tableConfig": { - "properties": { - "columnOrder": { - "items": { - "type": "string" - }, - "type": "array" - } + "xAxis": { + "items": { + "$ref": "#/components/schemas/Axis" }, - "required": ["columnOrder"], - "type": "object" + "type": "array" }, - "colorPalette": { + "yAxis": { "items": { - "type": "string" + "$ref": "#/components/schemas/Axis" }, "type": "array" } }, - "required": [ - "name", - "uuid", - "spaceName", - "spaceUuid", - "projectUuid", - "organizationUuid", - "pinnedListUuid", - "dashboardUuid", - "dashboardName", - "slug", - "updatedAt", - "pinnedListOrder", - "tableName", - "metricQuery", - "chartConfig", - "tableConfig", - "colorPalette" - ], "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Omit_SavedChart.isPrivate-or-access_": { - "$ref": "#/components/schemas/Pick_SavedChart.Exclude_keyofSavedChart.isPrivate-or-access__", - "description": "Construct a type with the properties of T except for those in type K." + "description": "Make all properties in T optional" }, - "SavedChartDAO": { - "$ref": "#/components/schemas/Omit_SavedChart.isPrivate-or-access_" + "EChartsConfig": { + "$ref": "#/components/schemas/Partial_CompleteEChartsConfig_" }, - "PromotedChart": { - "allOf": [ - { - "$ref": "#/components/schemas/SavedChartDAO" - }, - { - "properties": { - "oldUuid": { - "type": "string" - }, - "spaceSlug": { - "type": "string" - } - }, - "required": ["oldUuid", "spaceSlug"], - "type": "object" - } - ] + "Record_string.SeriesMetadata_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" }, - "PromotionChanges": { + "CartesianChart": { "properties": { - "charts": { - "items": { - "properties": { - "data": { - "$ref": "#/components/schemas/PromotedChart" - }, - "action": { - "$ref": "#/components/schemas/PromotionAction" - } - }, - "required": ["data", "action"], - "type": "object" - }, - "type": "array" + "metadata": { + "$ref": "#/components/schemas/Record_string.SeriesMetadata_" }, - "dashboards": { - "items": { - "properties": { - "data": { - "$ref": "#/components/schemas/PromotedDashboard" - }, - "action": { - "$ref": "#/components/schemas/PromotionAction" - } - }, - "required": ["data", "action"], - "type": "object" - }, - "type": "array" + "eChartsConfig": { + "$ref": "#/components/schemas/EChartsConfig" }, - "spaces": { - "items": { - "properties": { - "data": { - "$ref": "#/components/schemas/PromotedSpace" - }, - "action": { - "$ref": "#/components/schemas/PromotionAction" - } - }, - "required": ["data", "action"], - "type": "object" - }, - "type": "array" + "layout": { + "$ref": "#/components/schemas/CartesianChartLayout" } }, - "required": ["charts", "dashboards", "spaces"], + "required": ["eChartsConfig", "layout"], "type": "object" }, - "ApiPromotionChangesResponse": { + "CartesianChartConfig": { "properties": { - "results": { - "$ref": "#/components/schemas/PromotionChanges" + "config": { + "$ref": "#/components/schemas/CartesianChart" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false + "type": { + "$ref": "#/components/schemas/ChartType.CARTESIAN" } }, - "required": ["results", "status"], + "required": ["type"], "type": "object" }, - "ApiSuccessEmpty": { + "ChartType.CUSTOM": { + "enum": ["custom"], + "type": "string" + }, + "CustomVis": { "properties": { - "results": {}, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false + "spec": { + "additionalProperties": true, + "type": "object" } }, - "required": ["status"], "type": "object" }, - "Pick_Explore.SummaryExploreFields_": { + "CustomVisConfig": { "properties": { - "name": { - "type": "string" - }, - "label": { - "type": "string" - }, - "groupLabel": { - "type": "string" + "config": { + "$ref": "#/components/schemas/CustomVis" }, - "tags": { - "items": { - "type": "string" - }, - "type": "array" + "type": { + "$ref": "#/components/schemas/ChartType.CUSTOM" } }, - "required": ["name", "label", "tags"], + "required": ["type"], + "type": "object" + }, + "ChartType.PIE": { + "enum": ["pie"], + "type": "string" + }, + "PieChartValueLabel": { + "type": "string", + "enum": ["hidden", "inside", "outside"], + "nullable": false + }, + "Record_string.Partial_PieChartValueOptions__": { + "properties": {}, "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "description": "Construct a type with a set of properties K of type T" }, - "SummaryExtraFields": { - "properties": { - "databaseName": { - "type": "string" - }, - "schemaName": { - "type": "string" - }, - "description": { - "type": "string" - } - }, - "required": ["databaseName", "schemaName"], - "type": "object" + "PieChartLegendPosition": { + "type": "string", + "enum": ["horizontal", "vertical"], + "nullable": false }, - "Pick_ExploreError.SummaryExploreErrorFields_": { + "PieChart": { "properties": { - "name": { - "type": "string" + "metadata": { + "$ref": "#/components/schemas/Record_string.SeriesMetadata_" }, - "label": { - "type": "string" + "legendPosition": { + "$ref": "#/components/schemas/PieChartLegendPosition" }, - "groupLabel": { - "type": "string" + "showLegend": { + "type": "boolean" }, - "tags": { + "groupSortOverrides": { "items": { "type": "string" }, "type": "array" }, - "errors": { + "groupValueOptionOverrides": { + "$ref": "#/components/schemas/Record_string.Partial_PieChartValueOptions__" + }, + "groupColorOverrides": { + "$ref": "#/components/schemas/Record_string.string_" + }, + "groupLabelOverrides": { + "$ref": "#/components/schemas/Record_string.string_" + }, + "showPercentage": { + "type": "boolean" + }, + "showValue": { + "type": "boolean" + }, + "valueLabel": { + "$ref": "#/components/schemas/PieChartValueLabel" + }, + "isDonut": { + "type": "boolean" + }, + "metricId": { + "type": "string" + }, + "groupFieldIds": { "items": { - "$ref": "#/components/schemas/InlineError" + "type": "string" }, "type": "array" } }, - "required": ["name", "label", "tags", "errors"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "type": "object" }, - "Partial_SummaryExtraFields_": { + "PieChartConfig": { "properties": { - "description": { - "type": "string" - }, - "schemaName": { - "type": "string" + "config": { + "$ref": "#/components/schemas/PieChart" }, - "databaseName": { - "type": "string" + "type": { + "$ref": "#/components/schemas/ChartType.PIE" } }, - "type": "object", - "description": "Make all properties in T optional" + "required": ["type"], + "type": "object" }, - "SummaryExplore": { - "anyOf": [ - { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_Explore.SummaryExploreFields_" - }, - { - "$ref": "#/components/schemas/SummaryExtraFields" - } - ] - }, - { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_ExploreError.SummaryExploreErrorFields_" - }, - { - "$ref": "#/components/schemas/Partial_SummaryExtraFields_" - } - ] - } - ] + "ChartType.FUNNEL": { + "enum": ["funnel"], + "type": "string" }, - "ApiExploresResults": { - "items": { - "$ref": "#/components/schemas/SummaryExplore" - }, - "type": "array" + "FunnelChartDataInput": { + "enum": ["row", "column"], + "type": "string" }, - "OrderFieldsByStrategy": { - "enum": ["LABEL", "INDEX"], + "FunnelChartLabelPosition": { + "enum": ["inside", "left", "right", "hidden"], "type": "string" }, - "Record_string.GroupType_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" + "FunnelChartLegendPosition": { + "enum": ["horizontal", "vertical"], + "type": "string" }, - "TableBase": { + "FunnelChart": { "properties": { - "groupDetails": { - "$ref": "#/components/schemas/Record_string.GroupType_" - }, - "requiredAttributes": { - "$ref": "#/components/schemas/Record_string.string-or-string-Array_" + "legendPosition": { + "$ref": "#/components/schemas/FunnelChartLegendPosition" }, - "hidden": { + "showLegend": { "type": "boolean" }, - "requiredFilters": { - "items": { - "$ref": "#/components/schemas/MetricFilterRule" + "labels": { + "properties": { + "showPercentage": { + "type": "boolean" + }, + "showValue": { + "type": "boolean" + }, + "position": { + "$ref": "#/components/schemas/FunnelChartLabelPosition" + } }, - "type": "array" - }, - "sqlWhere": { - "type": "string" - }, - "groupLabel": { - "type": "string" - }, - "orderFieldsBy": { - "$ref": "#/components/schemas/OrderFieldsByStrategy" - }, - "sqlTable": { - "type": "string" + "type": "object" }, - "schema": { - "type": "string" + "colorOverrides": { + "$ref": "#/components/schemas/Record_string.string_" }, - "database": { - "type": "string" + "labelOverrides": { + "$ref": "#/components/schemas/Record_string.string_" }, - "description": { - "type": "string" + "metadata": { + "$ref": "#/components/schemas/Record_string.SeriesMetadata_" }, - "originalName": { + "fieldId": { "type": "string" }, - "label": { - "type": "string" + "dataInput": { + "$ref": "#/components/schemas/FunnelChartDataInput" + } + }, + "type": "object" + }, + "FunnelChartConfig": { + "properties": { + "config": { + "$ref": "#/components/schemas/FunnelChart" }, - "name": { - "type": "string" + "type": { + "$ref": "#/components/schemas/ChartType.FUNNEL" } }, - "required": ["sqlTable", "schema", "database", "label", "name"], + "required": ["type"], "type": "object" }, - "Record_string.CompiledDimension_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" + "ChartType.TABLE": { + "enum": ["table"], + "type": "string" }, - "Record_string.CompiledMetric_": { + "Record_string.ColumnProperties_": { "properties": {}, "type": "object", "description": "Construct a type with a set of properties K of type T" }, - "Record_string.LineageNodeDependency-Array_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" + "ConditionalRule_ConditionalOperator.number_": { + "properties": { + "values": { + "items": { + "type": "number", + "format": "double" + }, + "type": "array" + }, + "operator": { + "$ref": "#/components/schemas/ConditionalOperator" + }, + "id": { + "type": "string" + } + }, + "required": ["operator", "id"], + "type": "object" }, - "LineageGraph": { - "$ref": "#/components/schemas/Record_string.LineageNodeDependency-Array_" + "ConditionalFormattingWithConditionalOperator": { + "allOf": [ + { + "$ref": "#/components/schemas/ConditionalRule_ConditionalOperator.number_" + }, + { + "properties": { + "values": { + "items": { + "type": "number", + "format": "double" + }, + "type": "array" + } + }, + "required": ["values"], + "type": "object" + } + ] }, - "SourcePosition": { + "ConditionalFormattingConfigWithSingleColor": { "properties": { - "character": { + "rules": { + "items": { + "$ref": "#/components/schemas/ConditionalFormattingWithConditionalOperator" + }, + "type": "array" + }, + "color": { + "type": "string" + }, + "target": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldTarget" + } + ], + "nullable": true + } + }, + "required": ["rules", "color", "target"], + "type": "object" + }, + "ConditionalFormattingWithRange": { + "properties": { + "max": { "type": "number", "format": "double" }, - "line": { + "min": { "type": "number", "format": "double" } }, - "required": ["character", "line"], + "required": ["max", "min"], "type": "object" }, - "Source": { + "ConditionalFormattingConfigWithColorRange": { "properties": { - "content": { - "type": "string" + "rule": { + "$ref": "#/components/schemas/ConditionalFormattingWithRange" }, - "highlight": { + "color": { "properties": { - "end": { - "$ref": "#/components/schemas/SourcePosition" + "steps": { + "type": "number", + "enum": [5], + "nullable": false }, - "start": { - "$ref": "#/components/schemas/SourcePosition" - } - }, - "required": ["end", "start"], - "type": "object" - }, - "range": { - "properties": { "end": { - "$ref": "#/components/schemas/SourcePosition" + "type": "string" }, "start": { - "$ref": "#/components/schemas/SourcePosition" + "type": "string" } }, - "required": ["end", "start"], + "required": ["steps", "end", "start"], "type": "object" }, - "path": { - "type": "string" + "target": { + "allOf": [ + { + "$ref": "#/components/schemas/FieldTarget" + } + ], + "nullable": true } }, - "required": ["content", "range", "path"], + "required": ["rule", "color", "target"], "type": "object" }, - "CompiledTable": { - "allOf": [ + "ConditionalFormattingConfig": { + "anyOf": [ { - "$ref": "#/components/schemas/TableBase" + "$ref": "#/components/schemas/ConditionalFormattingConfigWithSingleColor" }, { - "properties": { - "uncompiledSqlWhere": { - "type": "string" - }, - "source": { - "$ref": "#/components/schemas/Source" - }, - "lineageGraph": { - "$ref": "#/components/schemas/LineageGraph" - }, - "metrics": { - "$ref": "#/components/schemas/Record_string.CompiledMetric_" - }, - "dimensions": { - "$ref": "#/components/schemas/Record_string.CompiledDimension_" - } - }, - "required": ["lineageGraph", "metrics", "dimensions"], - "type": "object" + "$ref": "#/components/schemas/ConditionalFormattingConfigWithColorRange" } ] }, - "SupportedDbtAdapter": { - "enum": [ - "bigquery", - "databricks", - "snowflake", - "redshift", - "postgres", - "trino" - ], - "type": "string" - }, - "Explore": { + "TableChart": { "properties": { - "sqlPath": { - "type": "string" - }, - "ymlPath": { - "type": "string" - }, - "warehouse": { - "type": "string" - }, - "targetDatabase": { - "$ref": "#/components/schemas/SupportedDbtAdapter" - }, - "tables": { - "properties": {}, - "additionalProperties": { - "$ref": "#/components/schemas/CompiledTable" - }, - "type": "object" + "metricsAsRows": { + "type": "boolean" }, - "joinedTables": { + "conditionalFormattings": { "items": { - "$ref": "#/components/schemas/CompiledExploreJoin" + "$ref": "#/components/schemas/ConditionalFormattingConfig" }, "type": "array" }, - "baseTable": { - "type": "string" + "columns": { + "$ref": "#/components/schemas/Record_string.ColumnProperties_" }, - "groupLabel": { - "type": "string" + "showSubtotals": { + "type": "boolean" }, - "tags": { - "items": { - "type": "string" - }, - "type": "array" + "showResultsTotal": { + "type": "boolean" }, - "label": { - "type": "string" + "hideRowNumbers": { + "type": "boolean" }, - "name": { - "type": "string" + "showTableNames": { + "type": "boolean" + }, + "showRowCalculation": { + "type": "boolean" + }, + "showColumnCalculation": { + "type": "boolean" } }, - "required": [ - "targetDatabase", - "tables", - "joinedTables", - "baseTable", - "tags", - "label", - "name" - ], "type": "object" }, - "ApiExploreResults": { - "$ref": "#/components/schemas/Explore" - }, - "ApiCompiledQueryResults": { - "type": "string" - }, - "GitRepo": { + "TableChartConfig": { "properties": { - "ownerLogin": { - "type": "string" - }, - "fullName": { - "type": "string" + "config": { + "$ref": "#/components/schemas/TableChart" }, - "name": { - "type": "string" + "type": { + "$ref": "#/components/schemas/ChartType.TABLE" } }, - "required": ["ownerLogin", "fullName", "name"], + "required": ["type"], "type": "object" }, - "GitIntegrationConfiguration": { - "properties": { - "enabled": { - "type": "boolean" + "ChartConfig": { + "anyOf": [ + { + "$ref": "#/components/schemas/BigNumberConfig" + }, + { + "$ref": "#/components/schemas/CartesianChartConfig" + }, + { + "$ref": "#/components/schemas/CustomVisConfig" + }, + { + "$ref": "#/components/schemas/PieChartConfig" + }, + { + "$ref": "#/components/schemas/FunnelChartConfig" + }, + { + "$ref": "#/components/schemas/TableChartConfig" } - }, - "required": ["enabled"], - "type": "object" + ] }, - "PullRequestCreated": { + "Pick_SavedChart.Exclude_keyofSavedChart.isPrivate-or-access__": { "properties": { - "prUrl": { + "name": { "type": "string" }, - "prTitle": { + "description": { "type": "string" - } - }, - "required": ["prUrl", "prTitle"], - "type": "object" - }, - "ApiGdriveAccessTokenResponse": { - "properties": { - "results": { + }, + "uuid": { "type": "string" }, - "status": { + "spaceName": { + "type": "string" + }, + "spaceUuid": { + "type": "string" + }, + "projectUuid": { + "type": "string" + }, + "organizationUuid": { + "type": "string" + }, + "pinnedListUuid": { "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "ApiJobScheduledResponse": { - "properties": { - "results": { - "properties": { - "jobId": { - "type": "string" - } - }, - "required": ["jobId"], - "type": "object" + "nullable": true }, - "status": { + "dashboardUuid": { "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "FilterGroupResponse": { - "anyOf": [ - { + "nullable": true + }, + "dashboardName": { + "type": "string", + "nullable": true + }, + "slug": { + "type": "string" + }, + "tableName": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" + }, + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true + }, + "metricQuery": { + "$ref": "#/components/schemas/MetricQuery" + }, + "pivotConfig": { "properties": { - "or": { - "items": {}, + "columns": { + "items": { + "type": "string" + }, "type": "array" - }, - "id": { - "type": "string" } }, - "required": ["or", "id"], + "required": ["columns"], "type": "object" }, - { + "chartConfig": { + "$ref": "#/components/schemas/ChartConfig" + }, + "tableConfig": { "properties": { - "and": { - "items": {}, + "columnOrder": { + "items": { + "type": "string" + }, "type": "array" - }, - "id": { - "type": "string" } }, - "required": ["and", "id"], + "required": ["columnOrder"], "type": "object" - } - ] - }, - "FiltersResponse": { - "properties": { - "tableCalculations": { - "$ref": "#/components/schemas/FilterGroupResponse" }, - "metrics": { - "$ref": "#/components/schemas/FilterGroupResponse" - }, - "dimensions": { - "$ref": "#/components/schemas/FilterGroupResponse" - } - }, - "type": "object" - }, - "MetricQueryResponse": { - "properties": { - "metadata": { - "properties": { - "hasADateDimension": { - "$ref": "#/components/schemas/Pick_CompiledDimension.label-or-name_" - } - }, - "required": ["hasADateDimension"], - "type": "object" - }, - "customDimensions": { - "items": { - "$ref": "#/components/schemas/CustomDimension" - }, - "type": "array" - }, - "additionalMetrics": { + "colorPalette": { "items": { - "$ref": "#/components/schemas/AdditionalMetric" + "type": "string" }, "type": "array" + } + }, + "required": [ + "name", + "uuid", + "spaceName", + "spaceUuid", + "projectUuid", + "organizationUuid", + "pinnedListUuid", + "dashboardUuid", + "dashboardName", + "slug", + "tableName", + "updatedAt", + "pinnedListOrder", + "metricQuery", + "chartConfig", + "tableConfig", + "colorPalette" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Omit_SavedChart.isPrivate-or-access_": { + "$ref": "#/components/schemas/Pick_SavedChart.Exclude_keyofSavedChart.isPrivate-or-access__", + "description": "Construct a type with the properties of T except for those in type K." + }, + "SavedChartDAO": { + "$ref": "#/components/schemas/Omit_SavedChart.isPrivate-or-access_" + }, + "PromotedChart": { + "allOf": [ + { + "$ref": "#/components/schemas/SavedChartDAO" }, - "tableCalculations": { - "items": { - "$ref": "#/components/schemas/TableCalculation" + { + "properties": { + "oldUuid": { + "type": "string" + }, + "spaceSlug": { + "type": "string" + } }, - "type": "array" - }, - "limit": { - "type": "number", - "format": "double" - }, - "sorts": { + "required": ["oldUuid", "spaceSlug"], + "type": "object" + } + ] + }, + "PromotionChanges": { + "properties": { + "charts": { "items": { - "$ref": "#/components/schemas/SortField" + "properties": { + "data": { + "$ref": "#/components/schemas/PromotedChart" + }, + "action": { + "$ref": "#/components/schemas/PromotionAction" + } + }, + "required": ["data", "action"], + "type": "object" }, "type": "array" }, - "filters": { - "$ref": "#/components/schemas/FiltersResponse" - }, - "metrics": { + "dashboards": { "items": { - "$ref": "#/components/schemas/FieldId" + "properties": { + "data": { + "$ref": "#/components/schemas/PromotedDashboard" + }, + "action": { + "$ref": "#/components/schemas/PromotionAction" + } + }, + "required": ["data", "action"], + "type": "object" }, "type": "array" }, - "dimensions": { + "spaces": { "items": { - "$ref": "#/components/schemas/FieldId" + "properties": { + "data": { + "$ref": "#/components/schemas/PromotedSpace" + }, + "action": { + "$ref": "#/components/schemas/PromotionAction" + } + }, + "required": ["data", "action"], + "type": "object" }, "type": "array" - }, - "exploreName": { - "type": "string" } }, - "required": [ - "tableCalculations", - "limit", - "sorts", - "filters", - "metrics", - "dimensions", - "exploreName" - ], + "required": ["charts", "dashboards", "spaces"], "type": "object" }, - "CustomLabel": { - "properties": {}, - "additionalProperties": { - "type": "string" + "ApiPromotionChangesResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/PromotionChanges" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } }, + "required": ["results", "status"], "type": "object" }, - "UploadMetricGsheet": { + "ExploreType": { + "enum": ["virtual", "default"], + "type": "string" + }, + "Pick_Explore.SummaryExploreFields_": { "properties": { - "hiddenFields": { - "items": { - "type": "string" - }, - "type": "array" + "name": { + "type": "string" }, - "customLabels": { - "$ref": "#/components/schemas/CustomLabel" + "label": { + "type": "string" }, - "columnOrder": { + "groupLabel": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/ExploreType" + }, + "tags": { "items": { "type": "string" }, "type": "array" + } + }, + "required": ["name", "label", "tags"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "SummaryExtraFields": { + "properties": { + "databaseName": { + "type": "string" }, - "showTableNames": { - "type": "boolean" - }, - "metricQuery": { - "$ref": "#/components/schemas/MetricQueryResponse" - }, - "exploreId": { + "schemaName": { "type": "string" }, - "projectUuid": { + "description": { "type": "string" } }, - "required": [ - "columnOrder", - "showTableNames", - "metricQuery", - "exploreId", - "projectUuid" - ], + "required": ["databaseName", "schemaName"], "type": "object" }, - "Group": { + "Pick_ExploreError.SummaryExploreErrorFields_": { "properties": { - "organizationUuid": { - "type": "string", - "description": "The UUID of the organization that the group belongs to" + "name": { + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "The time that the group was created" + "label": { + "type": "string" }, - "name": { - "type": "string", - "description": "A friendly name for the group" + "groupLabel": { + "type": "string" }, - "uuid": { - "type": "string", - "description": "The group's UUID" + "type": { + "$ref": "#/components/schemas/ExploreType" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "errors": { + "items": { + "$ref": "#/components/schemas/InlineError" + }, + "type": "array" } }, - "required": ["organizationUuid", "createdAt", "name", "uuid"], - "type": "object" + "required": ["name", "label", "tags", "errors"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "GroupMember": { + "Partial_SummaryExtraFields_": { "properties": { - "lastName": { - "type": "string", - "description": "The user's last name" - }, - "firstName": { - "type": "string", - "description": "The user's first name" + "description": { + "type": "string" }, - "email": { - "type": "string", - "description": "Primary email address for the user" + "schemaName": { + "type": "string" }, - "userUuid": { - "type": "string", - "description": "Unique id for the user", - "format": "uuid" + "databaseName": { + "type": "string" } }, - "required": ["lastName", "firstName", "email", "userUuid"], "type": "object", - "description": "A summary for a Lightdash user within a group" + "description": "Make all properties in T optional" }, - "GroupWithMembers": { - "allOf": [ - { - "$ref": "#/components/schemas/Group" - }, + "SummaryExplore": { + "anyOf": [ { - "properties": { - "memberUuids": { - "items": { - "type": "string" - }, - "type": "array" + "allOf": [ + { + "$ref": "#/components/schemas/Pick_Explore.SummaryExploreFields_" }, - "members": { - "items": { - "$ref": "#/components/schemas/GroupMember" - }, - "type": "array", - "description": "A list of the group's members." + { + "$ref": "#/components/schemas/SummaryExtraFields" } - }, - "required": ["memberUuids", "members"], - "type": "object" - } - ], - "description": "Details for a group including a list of the group's members." - }, - "ApiGroupResponse": { - "properties": { - "results": { - "anyOf": [ + ] + }, + { + "allOf": [ { - "$ref": "#/components/schemas/Group" + "$ref": "#/components/schemas/Pick_ExploreError.SummaryExploreErrorFields_" }, { - "$ref": "#/components/schemas/GroupWithMembers" + "$ref": "#/components/schemas/Partial_SummaryExtraFields_" } ] - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false } - }, - "required": ["results", "status"], - "type": "object" + ] }, - "ApiGroupMembersResponse": { - "properties": { - "results": { - "items": { - "$ref": "#/components/schemas/GroupMember" - }, - "type": "array" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } + "ApiExploresResults": { + "items": { + "$ref": "#/components/schemas/SummaryExplore" }, - "required": ["results", "status"], - "type": "object" + "type": "array" }, - "Pick_GroupMember.userUuid_": { - "properties": { - "userUuid": { - "type": "string", - "description": "Unique id for the user", - "format": "uuid" - } - }, - "required": ["userUuid"], + "OrderFieldsByStrategy": { + "enum": ["LABEL", "INDEX"], + "type": "string" + }, + "Record_string.GroupType_": { + "properties": {}, "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "description": "Construct a type with a set of properties K of type T" }, - "UpdateGroupWithMembers": { + "TableBase": { "properties": { - "members": { + "defaultTimeDimension": { + "$ref": "#/components/schemas/DefaultTimeDimension" + }, + "groupDetails": { + "$ref": "#/components/schemas/Record_string.GroupType_" + }, + "requiredAttributes": { + "$ref": "#/components/schemas/Record_string.string-or-string-Array_" + }, + "hidden": { + "type": "boolean" + }, + "requiredFilters": { "items": { - "$ref": "#/components/schemas/Pick_GroupMember.userUuid_" + "$ref": "#/components/schemas/MetricFilterRule" }, "type": "array" }, - "name": { - "type": "string" - } - }, - "type": "object" - }, - "ProjectMemberRole": { - "enum": [ - "viewer", - "interactive_viewer", - "editor", - "developer", - "admin" - ], - "type": "string" - }, - "ProjectGroupAccess": { - "properties": { - "role": { - "$ref": "#/components/schemas/ProjectMemberRole" - }, - "groupUuid": { + "sqlWhere": { "type": "string" }, - "projectUuid": { + "groupLabel": { "type": "string" - } - }, - "required": ["role", "groupUuid", "projectUuid"], - "type": "object" - }, - "ApiCreateProjectGroupAccess": { - "properties": { - "results": { - "$ref": "#/components/schemas/ProjectGroupAccess" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "Pick_CreateDBProjectGroupAccess.role_": { - "properties": { - "role": { - "$ref": "#/components/schemas/ProjectMemberRole" - } - }, - "required": ["role"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "ApiUpdateProjectGroupAccess": { - "properties": { - "results": { - "$ref": "#/components/schemas/ProjectGroupAccess" + "orderFieldsBy": { + "$ref": "#/components/schemas/OrderFieldsByStrategy" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "Pick_DBProjectGroupAccess.role_": { - "properties": { - "role": { - "$ref": "#/components/schemas/ProjectMemberRole" - } - }, - "required": ["role"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "UpdateDBProjectGroupAccess": { - "$ref": "#/components/schemas/Pick_DBProjectGroupAccess.role_" - }, - "NotificationBase": { - "properties": { - "url": { + "sqlTable": { "type": "string" }, - "message": { + "schema": { "type": "string" }, - "resourceUuid": { + "database": { "type": "string" }, - "viewed": { - "type": "boolean" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "notificationId": { - "type": "string" - } - }, - "required": ["viewed", "createdAt", "notificationId"], - "type": "object" - }, - "ApiNotificationResourceType.DashboardComments": { - "enum": ["dashboardComments"], - "type": "string" - }, - "NotificationDashboardTileCommentMetadata": { - "properties": { - "dashboardUuid": { + "description": { "type": "string" }, - "dashboardName": { + "originalName": { "type": "string" }, - "dashboardTileUuid": { + "label": { "type": "string" }, - "dashboardTileName": { + "name": { "type": "string" } }, - "required": [ - "dashboardUuid", - "dashboardName", - "dashboardTileUuid", - "dashboardTileName" - ], + "required": ["sqlTable", "schema", "database", "label", "name"], + "type": "object" + }, + "Record_string.CompiledDimension_": { + "properties": {}, "type": "object", - "additionalProperties": true + "description": "Construct a type with a set of properties K of type T" }, - "NotificationDashboardComment": { - "allOf": [ - { - "$ref": "#/components/schemas/NotificationBase" - }, - { - "properties": { - "metadata": { - "$ref": "#/components/schemas/NotificationDashboardTileCommentMetadata" - }, - "resourceType": { - "$ref": "#/components/schemas/ApiNotificationResourceType.DashboardComments" - } - }, - "required": ["resourceType"], + "Record_string.CompiledMetric_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "Record_string.LineageNodeDependency-Array_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "LineageGraph": { + "$ref": "#/components/schemas/Record_string.LineageNodeDependency-Array_" + }, + "CompiledTable": { + "allOf": [ + { + "$ref": "#/components/schemas/TableBase" + }, + { + "properties": { + "uncompiledSqlWhere": { + "type": "string" + }, + "source": { + "$ref": "#/components/schemas/Source" + }, + "lineageGraph": { + "$ref": "#/components/schemas/LineageGraph" + }, + "metrics": { + "$ref": "#/components/schemas/Record_string.CompiledMetric_" + }, + "dimensions": { + "$ref": "#/components/schemas/Record_string.CompiledDimension_" + } + }, + "required": ["lineageGraph", "metrics", "dimensions"], "type": "object" } ] }, - "Notification": { - "$ref": "#/components/schemas/NotificationDashboardComment" - }, - "ApiNotificationsResults": { - "items": { - "$ref": "#/components/schemas/Notification" - }, - "type": "array" + "SupportedDbtAdapter": { + "enum": [ + "bigquery", + "databricks", + "snowflake", + "redshift", + "postgres", + "trino" + ], + "type": "string" }, - "ApiGetNotifications": { + "Explore": { "properties": { - "results": { - "$ref": "#/components/schemas/ApiNotificationsResults" + "type": { + "$ref": "#/components/schemas/ExploreType" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false + "sqlPath": { + "type": "string" + }, + "ymlPath": { + "type": "string" + }, + "warehouse": { + "type": "string" + }, + "targetDatabase": { + "$ref": "#/components/schemas/SupportedDbtAdapter" + }, + "tables": { + "properties": {}, + "additionalProperties": { + "$ref": "#/components/schemas/CompiledTable" + }, + "type": "object" + }, + "joinedTables": { + "items": { + "$ref": "#/components/schemas/CompiledExploreJoin" + }, + "type": "array" + }, + "baseTable": { + "type": "string" + }, + "groupLabel": { + "type": "string" + }, + "tags": { + "items": { + "type": "string" + }, + "type": "array" + }, + "label": { + "type": "string" + }, + "name": { + "type": "string" } }, - "required": ["results", "status"], + "required": [ + "targetDatabase", + "tables", + "joinedTables", + "baseTable", + "tags", + "label", + "name" + ], "type": "object" }, - "ApiNotificationResourceType": { - "enum": ["dashboardComments"], + "ApiExploreResults": { + "$ref": "#/components/schemas/Explore" + }, + "ApiCompiledQueryResults": { "type": "string" }, - "Pick_Notification.viewed_": { + "GitRepo": { "properties": { - "viewed": { - "type": "boolean" + "ownerLogin": { + "type": "string" + }, + "fullName": { + "type": "string" + }, + "name": { + "type": "string" } }, - "required": ["viewed"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "required": ["ownerLogin", "fullName", "name"], + "type": "object" }, - "ApiNotificationUpdateParams": { - "$ref": "#/components/schemas/Pick_Notification.viewed_" + "GitIntegrationConfiguration": { + "properties": { + "enabled": { + "type": "boolean" + } + }, + "required": ["enabled"], + "type": "object" }, - "Organization": { + "PullRequestCreated": { "properties": { - "defaultProjectUuid": { - "type": "string", - "description": "The project a user sees when they first log in to the organization" - }, - "needsProject": { - "type": "boolean", - "description": "The organization needs a project if it doesn't have at least one project." - }, - "chartColors": { - "items": { - "type": "string" - }, - "type": "array", - "description": "The default color palette for all projects in the organization" - }, - "name": { - "type": "string", - "description": "The name of the organization" + "prUrl": { + "type": "string" }, - "organizationUuid": { - "type": "string", - "description": "The unique identifier of the organization", - "format": "uuid" + "prTitle": { + "type": "string" } }, - "required": ["name", "organizationUuid"], - "type": "object", - "description": "Details of a user's Organization" + "required": ["prUrl", "prTitle"], + "type": "object" }, - "ApiOrganization": { + "ApiGdriveAccessTokenResponse": { "properties": { "results": { - "$ref": "#/components/schemas/Organization" + "type": "string" }, "status": { "type": "string", @@ -3710,440 +3810,291 @@ "required": ["results", "status"], "type": "object" }, - "Pick_Organization.name_": { + "ApiJobScheduledResponse": { "properties": { - "name": { + "results": { + "properties": { + "jobId": { + "type": "string" + } + }, + "required": ["jobId"], + "type": "object" + }, + "status": { "type": "string", - "description": "The name of the organization" + "enum": ["ok"], + "nullable": false } }, - "required": ["name"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "CreateOrganization": { - "$ref": "#/components/schemas/Pick_Organization.name_" + "required": ["results", "status"], + "type": "object" }, - "Partial_Omit_Organization.organizationUuid-or-needsProject__": { - "properties": { - "name": { - "type": "string", - "description": "The name of the organization" - }, - "chartColors": { - "items": { - "type": "string" + "FilterGroupResponse": { + "anyOf": [ + { + "properties": { + "or": { + "items": {}, + "type": "array" + }, + "id": { + "type": "string" + } }, - "type": "array", - "description": "The default color palette for all projects in the organization" + "required": ["or", "id"], + "type": "object" }, - "defaultProjectUuid": { - "type": "string", - "description": "The project a user sees when they first log in to the organization" + { + "properties": { + "and": { + "items": {}, + "type": "array" + }, + "id": { + "type": "string" + } + }, + "required": ["and", "id"], + "type": "object" } - }, - "type": "object", - "description": "Make all properties in T optional" + ] }, - "UpdateOrganization": { - "$ref": "#/components/schemas/Partial_Omit_Organization.organizationUuid-or-needsProject__" - }, - "ProjectType": { - "enum": ["DEFAULT", "PREVIEW"], - "type": "string" - }, - "WarehouseTypes": { - "enum": [ - "bigquery", - "postgres", - "redshift", - "snowflake", - "databricks", - "trino" - ], - "type": "string" - }, - "OrganizationProject": { + "FiltersResponse": { "properties": { - "requireUserCredentials": { - "type": "boolean" - }, - "warehouseType": { - "$ref": "#/components/schemas/WarehouseTypes" - }, - "type": { - "$ref": "#/components/schemas/ProjectType" + "tableCalculations": { + "$ref": "#/components/schemas/FilterGroupResponse" }, - "name": { - "type": "string" + "metrics": { + "$ref": "#/components/schemas/FilterGroupResponse" }, - "projectUuid": { - "type": "string", - "description": "The unique identifier of the project", - "format": "uuid" + "dimensions": { + "$ref": "#/components/schemas/FilterGroupResponse" } }, - "required": [ - "requireUserCredentials", - "warehouseType", - "type", - "name", - "projectUuid" - ], - "type": "object", - "description": "Summary of a project under an organization" + "type": "object" }, - "ApiOrganizationProjects": { + "MetricQueryResponse": { "properties": { - "results": { + "metadata": { + "properties": { + "hasADateDimension": { + "$ref": "#/components/schemas/Pick_CompiledDimension.label-or-name_" + } + }, + "required": ["hasADateDimension"], + "type": "object" + }, + "customDimensions": { "items": { - "$ref": "#/components/schemas/OrganizationProject" + "$ref": "#/components/schemas/CustomDimension" }, "type": "array" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object", - "description": "List of projects in the current organization" - }, - "OrganizationMemberRole": { - "enum": [ - "member", - "viewer", - "interactive_viewer", - "editor", - "developer", - "admin" - ], - "type": "string" - }, - "OrganizationMemberProfile": { - "properties": { - "isInviteExpired": { - "type": "boolean", - "description": "Whether the user's invite to the organization has expired" + "additionalMetrics": { + "items": { + "$ref": "#/components/schemas/AdditionalMetric" + }, + "type": "array" }, - "isActive": { - "type": "boolean", - "description": "Whether the user has accepted their invite to the organization" + "tableCalculations": { + "items": { + "$ref": "#/components/schemas/TableCalculation" + }, + "type": "array" }, - "role": { - "$ref": "#/components/schemas/OrganizationMemberRole", - "description": "The role of the user in the organization" + "limit": { + "type": "number", + "format": "double" }, - "organizationUuid": { - "type": "string", - "description": "Unique identifier for the organization the user is a member of" + "sorts": { + "items": { + "$ref": "#/components/schemas/SortField" + }, + "type": "array" }, - "email": { - "type": "string" + "filters": { + "$ref": "#/components/schemas/FiltersResponse" }, - "lastName": { - "type": "string" + "metrics": { + "items": { + "$ref": "#/components/schemas/FieldId" + }, + "type": "array" }, - "firstName": { - "type": "string" + "dimensions": { + "items": { + "$ref": "#/components/schemas/FieldId" + }, + "type": "array" }, - "userUuid": { - "type": "string", - "description": "Unique identifier for the user", - "format": "uuid" + "exploreName": { + "type": "string" } }, "required": [ - "isActive", - "role", - "organizationUuid", - "email", - "lastName", - "firstName", - "userUuid" + "tableCalculations", + "limit", + "sorts", + "filters", + "metrics", + "dimensions", + "exploreName" ], - "type": "object", - "description": "Profile for a user's membership in an organization" + "type": "object" }, - "KnexPaginateArgs": { - "properties": { - "page": { - "type": "number", - "format": "double" - }, - "pageSize": { - "type": "number", - "format": "double" - } + "CustomLabel": { + "properties": {}, + "additionalProperties": { + "type": "string" }, - "required": ["page", "pageSize"], "type": "object" }, - "KnexPaginatedData_OrganizationMemberProfile-Array_": { + "UploadMetricGsheet": { "properties": { - "pagination": { - "allOf": [ - { - "$ref": "#/components/schemas/KnexPaginateArgs" - }, - { - "properties": { - "totalPageCount": { - "type": "number", - "format": "double" - } - }, - "required": ["totalPageCount"], - "type": "object" - } - ] + "hiddenFields": { + "items": { + "type": "string" + }, + "type": "array" }, - "data": { + "customLabels": { + "$ref": "#/components/schemas/CustomLabel" + }, + "columnOrder": { "items": { - "$ref": "#/components/schemas/OrganizationMemberProfile" + "type": "string" }, "type": "array" + }, + "showTableNames": { + "type": "boolean" + }, + "metricQuery": { + "$ref": "#/components/schemas/MetricQueryResponse" + }, + "exploreId": { + "type": "string" + }, + "projectUuid": { + "type": "string" } }, - "required": ["data"], + "required": [ + "columnOrder", + "showTableNames", + "metricQuery", + "exploreId", + "projectUuid" + ], "type": "object" }, - "ApiOrganizationMemberProfiles": { + "Group": { "properties": { - "results": { - "$ref": "#/components/schemas/KnexPaginatedData_OrganizationMemberProfile-Array_" + "organizationUuid": { + "type": "string", + "description": "The UUID of the organization that the group belongs to" }, - "status": { + "updatedByUserUuid": { "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "ApiOrganizationMemberProfile": { - "properties": { - "results": { - "$ref": "#/components/schemas/OrganizationMemberProfile" + "nullable": true, + "description": "The UUID of the user that last updated the group" }, - "status": { + "updatedAt": { "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "UUID": { - "type": "string", - "format": "uuid", - "description": "Stringified UUIDv4.\nSee [RFC 4112](https://tools.ietf.org/html/rfc4122)", - "pattern": "[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}" - }, - "OrganizationMemberProfileUpdate": { - "properties": { - "role": { - "$ref": "#/components/schemas/OrganizationMemberRole" - } - }, - "required": ["role"], - "type": "object" - }, - "OrganizationMemberRole.EDITOR": { - "enum": ["editor"], - "type": "string" - }, - "OrganizationMemberRole.INTERACTIVE_VIEWER": { - "enum": ["interactive_viewer"], - "type": "string" - }, - "OrganizationMemberRole.VIEWER": { - "enum": ["viewer"], - "type": "string" - }, - "OrganizationMemberRole.MEMBER": { - "enum": ["member"], - "type": "string" - }, - "AllowedEmailDomainsRole": { - "anyOf": [ - { - "$ref": "#/components/schemas/OrganizationMemberRole.EDITOR" - }, - { - "$ref": "#/components/schemas/OrganizationMemberRole.INTERACTIVE_VIEWER" - }, - { - "$ref": "#/components/schemas/OrganizationMemberRole.VIEWER" - }, - { - "$ref": "#/components/schemas/OrganizationMemberRole.MEMBER" - } - ] - }, - "ProjectMemberRole.EDITOR": { - "enum": ["editor"], - "type": "string" - }, - "ProjectMemberRole.INTERACTIVE_VIEWER": { - "enum": ["interactive_viewer"], - "type": "string" - }, - "ProjectMemberRole.VIEWER": { - "enum": ["viewer"], - "type": "string" - }, - "AllowedEmailDomainProjectsRole": { - "anyOf": [ - { - "$ref": "#/components/schemas/ProjectMemberRole.EDITOR" - }, - { - "$ref": "#/components/schemas/ProjectMemberRole.INTERACTIVE_VIEWER" + "format": "date-time", + "description": "The time that the group was last updated" }, - { - "$ref": "#/components/schemas/ProjectMemberRole.VIEWER" - } - ] - }, - "AllowedEmailDomains": { - "properties": { - "projects": { - "items": { - "properties": { - "role": { - "$ref": "#/components/schemas/AllowedEmailDomainProjectsRole" - }, - "projectUuid": { - "type": "string" - } - }, - "required": ["role", "projectUuid"], - "type": "object" - }, - "type": "array" + "createdByUserUuid": { + "type": "string", + "nullable": true, + "description": "The UUID of the user that created the group" }, - "role": { - "$ref": "#/components/schemas/AllowedEmailDomainsRole" + "createdAt": { + "type": "string", + "format": "date-time", + "description": "The time that the group was created" }, - "emailDomains": { - "items": { - "type": "string" - }, - "type": "array" + "name": { + "type": "string", + "description": "A friendly name for the group" }, - "organizationUuid": { - "type": "string" + "uuid": { + "type": "string", + "description": "The group's UUID" } }, "required": [ - "projects", - "role", - "emailDomains", - "organizationUuid" + "organizationUuid", + "updatedByUserUuid", + "updatedAt", + "createdByUserUuid", + "createdAt", + "name", + "uuid" ], "type": "object" }, - "ApiOrganizationAllowedEmailDomains": { + "GroupMember": { "properties": { - "results": { - "$ref": "#/components/schemas/AllowedEmailDomains" + "lastName": { + "type": "string", + "description": "The user's last name" }, - "status": { + "firstName": { "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "Pick_AllowedEmailDomains.Exclude_keyofAllowedEmailDomains.organizationUuid__": { - "properties": { - "role": { - "$ref": "#/components/schemas/AllowedEmailDomainsRole" + "description": "The user's first name" }, - "emailDomains": { - "items": { - "type": "string" - }, - "type": "array" + "email": { + "type": "string", + "description": "Primary email address for the user" }, - "projects": { - "items": { - "properties": { - "role": { - "$ref": "#/components/schemas/AllowedEmailDomainProjectsRole" - }, - "projectUuid": { - "type": "string" - } - }, - "required": ["role", "projectUuid"], - "type": "object" - }, - "type": "array" - } - }, - "required": ["role", "emailDomains", "projects"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Omit_AllowedEmailDomains.organizationUuid_": { - "$ref": "#/components/schemas/Pick_AllowedEmailDomains.Exclude_keyofAllowedEmailDomains.organizationUuid__", - "description": "Construct a type with the properties of T except for those in type K." - }, - "UpdateAllowedEmailDomains": { - "$ref": "#/components/schemas/Omit_AllowedEmailDomains.organizationUuid_" - }, - "Pick_Group.name_": { - "properties": { - "name": { + "userUuid": { "type": "string", - "description": "A friendly name for the group" + "description": "Unique id for the user", + "format": "uuid" } }, - "required": ["name"], + "required": ["lastName", "firstName", "email", "userUuid"], "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "description": "A summary for a Lightdash user within a group" }, - "CreateGroup": { + "GroupWithMembers": { "allOf": [ { - "$ref": "#/components/schemas/Pick_Group.name_" + "$ref": "#/components/schemas/Group" }, { "properties": { - "members": { + "memberUuids": { "items": { - "$ref": "#/components/schemas/Pick_GroupMember.userUuid_" + "type": "string" }, "type": "array" + }, + "members": { + "items": { + "$ref": "#/components/schemas/GroupMember" + }, + "type": "array", + "description": "A list of the group's members." } }, + "required": ["memberUuids", "members"], "type": "object" } - ] + ], + "description": "Details for a group including a list of the group's members." }, - "ApiGroupListResponse": { + "ApiGroupResponse": { "properties": { "results": { "anyOf": [ { - "items": { - "$ref": "#/components/schemas/Group" - }, - "type": "array" + "$ref": "#/components/schemas/Group" }, { - "items": { - "$ref": "#/components/schemas/GroupWithMembers" - }, - "type": "array" + "$ref": "#/components/schemas/GroupWithMembers" } ] }, @@ -4156,346 +4107,391 @@ "required": ["results", "status"], "type": "object" }, - "ResourceViewItemType.DASHBOARD": { - "enum": ["dashboard"], - "type": "string" - }, - "Pick_ValidationResponse.error-or-createdAt-or-validationId_": { + "ApiGroupMembersResponse": { "properties": { - "validationId": { - "type": "number", - "format": "double" + "results": { + "items": { + "$ref": "#/components/schemas/GroupMember" + }, + "type": "array" }, - "createdAt": { + "status": { "type": "string", - "format": "date-time" - }, - "error": { - "type": "string" + "enum": ["ok"], + "nullable": false } }, - "required": ["validationId", "createdAt", "error"], + "required": ["results", "status"], + "type": "object" + }, + "Pick_GroupMember.userUuid_": { + "properties": { + "userUuid": { + "type": "string", + "description": "Unique id for the user", + "format": "uuid" + } + }, + "required": ["userUuid"], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "ValidationSummary": { - "$ref": "#/components/schemas/Pick_ValidationResponse.error-or-createdAt-or-validationId_" - }, - "Pick_DashboardBasicDetails.uuid-or-spaceUuid-or-description-or-name-or-views-or-firstViewedAt-or-pinnedListUuid-or-pinnedListOrder-or-updatedAt-or-updatedByUser-or-validationErrors_": { + "UpdateGroupWithMembers": { "properties": { + "members": { + "items": { + "$ref": "#/components/schemas/Pick_GroupMember.userUuid_" + }, + "type": "array" + }, "name": { "type": "string" + } + }, + "type": "object" + }, + "ProjectMemberRole": { + "enum": [ + "viewer", + "interactive_viewer", + "editor", + "developer", + "admin" + ], + "type": "string" + }, + "ProjectGroupAccess": { + "properties": { + "role": { + "$ref": "#/components/schemas/ProjectMemberRole" }, - "description": { - "type": "string" - }, - "uuid": { + "groupUuid": { "type": "string" }, - "spaceUuid": { + "projectUuid": { "type": "string" + } + }, + "required": ["role", "groupUuid", "projectUuid"], + "type": "object" + }, + "ApiCreateProjectGroupAccess": { + "properties": { + "results": { + "$ref": "#/components/schemas/ProjectGroupAccess" }, - "pinnedListUuid": { + "status": { "type": "string", - "nullable": true + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "Pick_CreateDBProjectGroupAccess.role_": { + "properties": { + "role": { + "$ref": "#/components/schemas/ProjectMemberRole" + } + }, + "required": ["role"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "ApiUpdateProjectGroupAccess": { + "properties": { + "results": { + "$ref": "#/components/schemas/ProjectGroupAccess" }, - "updatedAt": { + "status": { "type": "string", - "format": "date-time" - }, - "updatedByUser": { - "$ref": "#/components/schemas/UpdatedByUser" - }, - "views": { - "type": "number", - "format": "double" - }, - "firstViewedAt": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "string" - } - ], - "nullable": true + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "Pick_DBProjectGroupAccess.role_": { + "properties": { + "role": { + "$ref": "#/components/schemas/ProjectMemberRole" + } + }, + "required": ["role"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "UpdateDBProjectGroupAccess": { + "$ref": "#/components/schemas/Pick_DBProjectGroupAccess.role_" + }, + "Record_string._value-ResultValue--__": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "ResultRow": { + "$ref": "#/components/schemas/Record_string._value-ResultValue--__" + }, + "Record_string.Field-or-TableCalculation-or-CustomDimension-or-Metric_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "ItemsMap": { + "$ref": "#/components/schemas/Record_string.Field-or-TableCalculation-or-CustomDimension-or-Metric_" + }, + "MetricsExplorerQueryResults": { + "properties": { + "fields": { + "$ref": "#/components/schemas/ItemsMap" }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true + "comparisonRows": { + "items": { + "$ref": "#/components/schemas/ResultRow" + }, + "type": "array" }, - "validationErrors": { + "rows": { "items": { - "$ref": "#/components/schemas/ValidationSummary" + "$ref": "#/components/schemas/ResultRow" }, "type": "array" + }, + "metric": { + "$ref": "#/components/schemas/MetricWithAssociatedTimeDimension" } }, - "required": [ - "name", - "uuid", - "spaceUuid", - "pinnedListUuid", - "updatedAt", - "views", - "firstViewedAt", - "pinnedListOrder" - ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "ResourceItemCategory": { - "enum": ["mostPopular", "recentlyUpdated", "pinned"], - "type": "string" + "required": ["fields", "rows", "metric"], + "type": "object" }, - "ResourceViewDashboardItem": { + "ApiMetricsExplorerQueryResults": { "properties": { - "category": { - "$ref": "#/components/schemas/ResourceItemCategory" - }, - "data": { - "$ref": "#/components/schemas/Pick_DashboardBasicDetails.uuid-or-spaceUuid-or-description-or-name-or-views-or-firstViewedAt-or-pinnedListUuid-or-pinnedListOrder-or-updatedAt-or-updatedByUser-or-validationErrors_" + "results": { + "$ref": "#/components/schemas/MetricsExplorerQueryResults" }, - "type": { - "$ref": "#/components/schemas/ResourceViewItemType.DASHBOARD" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } }, - "required": ["data", "type"], + "required": ["results", "status"], "type": "object" }, - "ResourceViewItemType.CHART": { - "enum": ["chart"], + "TimeDimensionConfig": { + "allOf": [ + { + "$ref": "#/components/schemas/DefaultTimeDimension" + }, + { + "properties": { + "table": { + "type": "string" + } + }, + "required": ["table"], + "type": "object" + } + ] + }, + "MetricExplorerComparison.NONE": { + "enum": ["none"], "type": "string" }, - "ChartType": { - "enum": [ - "cartesian", - "table", - "big_number", - "pie", - "funnel", - "custom" - ], + "MetricExplorerComparison.PREVIOUS_PERIOD": { + "enum": ["previous_period"], "type": "string" }, - "Pick_SpaceQuery.uuid-or-name-or-chartType-or-chartKind-or-firstViewedAt-or-views-or-pinnedListUuid-or-pinnedListOrder-or-spaceUuid-or-description-or-updatedAt-or-updatedByUser-or-validationErrors-or-slug_": { - "properties": { - "name": { - "type": "string" + "MetricExplorerComparison.DIFFERENT_METRIC": { + "enum": ["different_metric"], + "type": "string" + }, + "MetricExplorerComparisonType": { + "anyOf": [ + { + "properties": { + "type": { + "$ref": "#/components/schemas/MetricExplorerComparison.NONE" + } + }, + "required": ["type"], + "type": "object" }, - "description": { - "type": "string" + { + "properties": { + "type": { + "$ref": "#/components/schemas/MetricExplorerComparison.PREVIOUS_PERIOD" + } + }, + "required": ["type"], + "type": "object" }, - "uuid": { + { + "properties": { + "metricName": { + "type": "string" + }, + "metricTable": { + "type": "string" + }, + "type": { + "$ref": "#/components/schemas/MetricExplorerComparison.DIFFERENT_METRIC" + } + }, + "required": ["metricName", "metricTable", "type"], + "type": "object" + } + ] + }, + "NotificationBase": { + "properties": { + "url": { "type": "string" }, - "spaceUuid": { + "message": { "type": "string" }, - "pinnedListUuid": { - "type": "string", - "nullable": true - }, - "slug": { + "resourceUuid": { "type": "string" }, - "chartKind": { - "$ref": "#/components/schemas/ChartKind" + "viewed": { + "type": "boolean" }, - "updatedAt": { + "createdAt": { "type": "string", "format": "date-time" }, - "updatedByUser": { - "$ref": "#/components/schemas/UpdatedByUser" + "notificationId": { + "type": "string" + } + }, + "required": ["viewed", "createdAt", "notificationId"], + "type": "object" + }, + "ApiNotificationResourceType.DashboardComments": { + "enum": ["dashboardComments"], + "type": "string" + }, + "NotificationDashboardTileCommentMetadata": { + "properties": { + "dashboardUuid": { + "type": "string" }, - "views": { - "type": "number", - "format": "double" + "dashboardName": { + "type": "string" }, - "firstViewedAt": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "string" - } - ], - "nullable": true - }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true - }, - "validationErrors": { - "items": { - "$ref": "#/components/schemas/ValidationSummary" - }, - "type": "array" + "dashboardTileUuid": { + "type": "string" }, - "chartType": { - "$ref": "#/components/schemas/ChartType" + "dashboardTileName": { + "type": "string" } }, "required": [ - "name", - "uuid", - "spaceUuid", - "pinnedListUuid", - "slug", - "updatedAt", - "views", - "firstViewedAt", - "pinnedListOrder" + "dashboardUuid", + "dashboardName", + "dashboardTileUuid", + "dashboardTileName" ], "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "ChartSourceType": { - "enum": ["dbt_explore", "sql", "semantic_layer"], - "type": "string" + "additionalProperties": true }, - "ResourceViewChartItem": { - "properties": { - "category": { - "$ref": "#/components/schemas/ResourceItemCategory" + "NotificationDashboardComment": { + "allOf": [ + { + "$ref": "#/components/schemas/NotificationBase" }, - "data": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_SpaceQuery.uuid-or-name-or-chartType-or-chartKind-or-firstViewedAt-or-views-or-pinnedListUuid-or-pinnedListOrder-or-spaceUuid-or-description-or-updatedAt-or-updatedByUser-or-validationErrors-or-slug_" + { + "properties": { + "metadata": { + "$ref": "#/components/schemas/NotificationDashboardTileCommentMetadata" }, - { - "properties": { - "source": { - "$ref": "#/components/schemas/ChartSourceType" - } - }, - "type": "object" + "resourceType": { + "$ref": "#/components/schemas/ApiNotificationResourceType.DashboardComments" } - ] + }, + "required": ["resourceType"], + "type": "object" + } + ] + }, + "Notification": { + "$ref": "#/components/schemas/NotificationDashboardComment" + }, + "ApiNotificationsResults": { + "items": { + "$ref": "#/components/schemas/Notification" + }, + "type": "array" + }, + "ApiGetNotifications": { + "properties": { + "results": { + "$ref": "#/components/schemas/ApiNotificationsResults" }, - "type": { - "$ref": "#/components/schemas/ResourceViewItemType.CHART" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } }, - "required": ["data", "type"], + "required": ["results", "status"], "type": "object" }, - "ResourceViewItemType.SPACE": { - "enum": ["space"], + "ApiNotificationResourceType": { + "enum": ["dashboardComments"], "type": "string" }, - "Pick_Space.projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-organizationUuid_": { + "Pick_Notification.viewed_": { "properties": { - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - }, - "projectUuid": { - "type": "string" - }, - "organizationUuid": { - "type": "string" - }, - "pinnedListUuid": { - "type": "string", - "nullable": true - }, - "isPrivate": { + "viewed": { "type": "boolean" - }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true } }, - "required": [ - "name", - "uuid", - "projectUuid", - "organizationUuid", - "pinnedListUuid", - "isPrivate", - "pinnedListOrder" - ], + "required": ["viewed"], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "ResourceViewSpaceItem": { + "ApiNotificationUpdateParams": { + "$ref": "#/components/schemas/Pick_Notification.viewed_" + }, + "Organization": { "properties": { - "data": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_Space.projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-organizationUuid_" - }, - { - "properties": { - "chartCount": { - "type": "number", - "format": "double" - }, - "dashboardCount": { - "type": "number", - "format": "double" - }, - "accessListLength": { - "type": "number", - "format": "double" - }, - "access": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "chartCount", - "dashboardCount", - "accessListLength", - "access" - ], - "type": "object" - } - ] + "defaultProjectUuid": { + "type": "string", + "description": "The project a user sees when they first log in to the organization" }, - "type": { - "$ref": "#/components/schemas/ResourceViewItemType.SPACE" - } - }, - "required": ["data", "type"], - "type": "object" - }, - "PinnedItems": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/ResourceViewDashboardItem" - }, - { - "$ref": "#/components/schemas/ResourceViewChartItem" + "needsProject": { + "type": "boolean", + "description": "The organization needs a project if it doesn't have at least one project." + }, + "chartColors": { + "items": { + "type": "string" }, - { - "$ref": "#/components/schemas/ResourceViewSpaceItem" - } - ] + "type": "array", + "description": "The default color palette for all projects in the organization" + }, + "name": { + "type": "string", + "description": "The name of the organization" + }, + "organizationUuid": { + "type": "string", + "description": "The unique identifier of the organization", + "format": "uuid" + } }, - "type": "array" + "required": ["name", "organizationUuid"], + "type": "object", + "description": "Details of a user's Organization" }, - "ApiPinnedItems": { + "ApiOrganization": { "properties": { "results": { - "$ref": "#/components/schemas/PinnedItems" + "$ref": "#/components/schemas/Organization" }, "status": { "type": "string", @@ -4506,1812 +4502,1725 @@ "required": ["results", "status"], "type": "object" }, - "ResourceViewItemType": { - "enum": ["chart", "dashboard", "space"], - "type": "string" - }, - "Pick_ResourceViewItem-at-data.uuid-or-pinnedListOrder_": { + "Pick_Organization.name_": { "properties": { - "uuid": { - "type": "string" - }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true + "name": { + "type": "string", + "description": "The name of the organization" } }, - "required": ["uuid", "pinnedListOrder"], + "required": ["name"], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "UpdatePinnedItemOrder": { + "CreateOrganization": { + "$ref": "#/components/schemas/Pick_Organization.name_" + }, + "Partial_Omit_Organization.organizationUuid-or-needsProject__": { "properties": { - "data": { - "$ref": "#/components/schemas/Pick_ResourceViewItem-at-data.uuid-or-pinnedListOrder_" + "name": { + "type": "string", + "description": "The name of the organization" }, - "type": { - "$ref": "#/components/schemas/ResourceViewItemType" - } - }, - "required": ["data", "type"], - "type": "object" - }, - "DbtProjectType.DBT": { - "enum": ["dbt"], - "type": "string" - }, - "DbtProjectEnvironmentVariable": { - "properties": { - "value": { - "type": "string" + "chartColors": { + "items": { + "type": "string" + }, + "type": "array", + "description": "The default color palette for all projects in the organization" }, - "key": { - "type": "string" + "defaultProjectUuid": { + "type": "string", + "description": "The project a user sees when they first log in to the organization" } }, - "required": ["value", "key"], - "type": "object" + "type": "object", + "description": "Make all properties in T optional" }, - "DbtProjectType": { + "UpdateOrganization": { + "$ref": "#/components/schemas/Partial_Omit_Organization.organizationUuid-or-needsProject__" + }, + "ProjectType": { + "enum": ["DEFAULT", "PREVIEW"], + "type": "string" + }, + "WarehouseTypes": { "enum": [ - "dbt", - "dbt_cloud_ide", - "github", - "gitlab", - "bitbucket", - "azure_devops", - "none" + "bigquery", + "postgres", + "redshift", + "snowflake", + "databricks", + "trino" ], "type": "string" }, - "DbtLocalProjectConfig": { + "OrganizationProject": { "properties": { - "type": { - "$ref": "#/components/schemas/DbtProjectType.DBT" + "requireUserCredentials": { + "type": "boolean" }, - "target": { - "type": "string" + "warehouseType": { + "$ref": "#/components/schemas/WarehouseTypes" }, - "environment": { - "items": { - "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" - }, - "type": "array" + "upstreamProjectUuid": { + "type": "string", + "nullable": true }, - "profiles_dir": { - "type": "string" + "createdByUserUuid": { + "type": "string", + "nullable": true }, - "project_dir": { - "type": "string" - } - }, - "required": ["type"], - "type": "object", - "additionalProperties": true - }, - "DbtProjectType.DBT_CLOUD_IDE": { - "enum": ["dbt_cloud_ide"], - "type": "string" - }, - "DbtCloudIDEProjectConfig": { - "properties": { "type": { - "$ref": "#/components/schemas/DbtProjectType.DBT_CLOUD_IDE" + "$ref": "#/components/schemas/ProjectType" }, - "api_key": { + "name": { "type": "string" }, - "environment_id": { - "type": "string" + "projectUuid": { + "type": "string", + "description": "The unique identifier of the project", + "format": "uuid" } }, - "required": ["type", "api_key", "environment_id"], + "required": [ + "requireUserCredentials", + "warehouseType", + "upstreamProjectUuid", + "createdByUserUuid", + "type", + "name", + "projectUuid" + ], "type": "object", - "additionalProperties": true - }, - "DbtProjectType.GITHUB": { - "enum": ["github"], - "type": "string" + "description": "Summary of a project under an organization" }, - "DbtGithubProjectConfig": { + "ApiOrganizationProjects": { "properties": { - "type": { - "$ref": "#/components/schemas/DbtProjectType.GITHUB" - }, - "target": { - "type": "string" - }, - "environment": { + "results": { "items": { - "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" + "$ref": "#/components/schemas/OrganizationProject" }, "type": "array" }, - "personal_access_token": { - "type": "string" - }, - "repository": { - "type": "string" - }, - "branch": { - "type": "string" - }, - "project_sub_path": { - "type": "string" - }, - "host_domain": { - "type": "string" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } }, - "required": [ - "type", - "personal_access_token", - "repository", - "branch", - "project_sub_path" - ], + "required": ["results", "status"], "type": "object", - "additionalProperties": true + "description": "List of projects in the current organization" }, - "DbtProjectType.BITBUCKET": { - "enum": ["bitbucket"], + "OrganizationMemberRole": { + "enum": [ + "member", + "viewer", + "interactive_viewer", + "editor", + "developer", + "admin" + ], "type": "string" }, - "DbtBitBucketProjectConfig": { + "OrganizationMemberProfile": { "properties": { - "type": { - "$ref": "#/components/schemas/DbtProjectType.BITBUCKET" + "isPending": { + "type": "boolean", + "description": "Whether the user doesn't have an authentication method (password or openId)" }, - "target": { - "type": "string" + "isInviteExpired": { + "type": "boolean", + "description": "Whether the user's invite to the organization has expired" }, - "environment": { - "items": { - "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" - }, - "type": "array" + "isActive": { + "type": "boolean", + "description": "Whether the user can login" }, - "username": { - "type": "string" + "role": { + "$ref": "#/components/schemas/OrganizationMemberRole", + "description": "The role of the user in the organization" }, - "personal_access_token": { - "type": "string" + "organizationUuid": { + "type": "string", + "description": "Unique identifier for the organization the user is a member of" }, - "repository": { + "email": { "type": "string" }, - "branch": { + "lastName": { "type": "string" }, - "project_sub_path": { + "firstName": { "type": "string" }, - "host_domain": { - "type": "string" + "userUpdatedAt": { + "type": "string", + "format": "date-time" + }, + "userCreatedAt": { + "type": "string", + "format": "date-time" + }, + "userUuid": { + "type": "string", + "description": "Unique identifier for the user", + "format": "uuid" } }, "required": [ - "type", - "username", - "personal_access_token", - "repository", - "branch", - "project_sub_path" + "isActive", + "role", + "organizationUuid", + "email", + "lastName", + "firstName", + "userUpdatedAt", + "userCreatedAt", + "userUuid" ], "type": "object", - "additionalProperties": true - }, - "DbtProjectType.GITLAB": { - "enum": ["gitlab"], - "type": "string" + "description": "Profile for a user's membership in an organization" }, - "DbtGitlabProjectConfig": { + "KnexPaginatedData_OrganizationMemberProfile-Array_": { "properties": { - "type": { - "$ref": "#/components/schemas/DbtProjectType.GITLAB" - }, - "target": { - "type": "string" + "pagination": { + "allOf": [ + { + "$ref": "#/components/schemas/KnexPaginateArgs" + }, + { + "properties": { + "totalResults": { + "type": "number", + "format": "double" + }, + "totalPageCount": { + "type": "number", + "format": "double" + } + }, + "required": ["totalResults", "totalPageCount"], + "type": "object" + } + ] }, - "environment": { + "data": { "items": { - "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" + "$ref": "#/components/schemas/OrganizationMemberProfile" }, "type": "array" - }, - "personal_access_token": { - "type": "string" - }, - "repository": { - "type": "string" - }, - "branch": { - "type": "string" - }, - "project_sub_path": { - "type": "string" - }, - "host_domain": { - "type": "string" } }, - "required": [ - "type", - "personal_access_token", - "repository", - "branch", - "project_sub_path" - ], - "type": "object", - "additionalProperties": true - }, - "DbtProjectType.AZURE_DEVOPS": { - "enum": ["azure_devops"], - "type": "string" + "required": ["data"], + "type": "object" }, - "DbtAzureDevOpsProjectConfig": { + "ApiOrganizationMemberProfiles": { "properties": { - "type": { - "$ref": "#/components/schemas/DbtProjectType.AZURE_DEVOPS" - }, - "target": { - "type": "string" - }, - "environment": { - "items": { - "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" - }, - "type": "array" - }, - "personal_access_token": { - "type": "string" - }, - "organization": { - "type": "string" - }, - "project": { - "type": "string" - }, - "repository": { - "type": "string" + "results": { + "$ref": "#/components/schemas/KnexPaginatedData_OrganizationMemberProfile-Array_" }, - "branch": { - "type": "string" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "ApiOrganizationMemberProfile": { + "properties": { + "results": { + "$ref": "#/components/schemas/OrganizationMemberProfile" }, - "project_sub_path": { - "type": "string" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } }, - "required": [ - "type", - "personal_access_token", - "organization", - "project", - "repository", - "branch", - "project_sub_path" - ], - "type": "object", - "additionalProperties": true + "required": ["results", "status"], + "type": "object" }, - "DbtProjectType.NONE": { - "enum": ["none"], - "type": "string" + "UUID": { + "type": "string", + "format": "uuid", + "description": "Stringified UUIDv4.\nSee [RFC 4112](https://tools.ietf.org/html/rfc4122)", + "pattern": "[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}" }, - "DbtNoneProjectConfig": { + "OrganizationMemberProfileUpdate": { "properties": { - "type": { - "$ref": "#/components/schemas/DbtProjectType.NONE" - }, - "target": { - "type": "string" - }, - "environment": { - "items": { - "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" - }, - "type": "array" - }, - "hideRefreshButton": { - "type": "boolean" + "role": { + "$ref": "#/components/schemas/OrganizationMemberRole" } }, - "required": ["type"], - "type": "object", - "additionalProperties": true + "required": ["role"], + "type": "object" }, - "DbtProjectConfig": { + "OrganizationMemberRole.EDITOR": { + "enum": ["editor"], + "type": "string" + }, + "OrganizationMemberRole.INTERACTIVE_VIEWER": { + "enum": ["interactive_viewer"], + "type": "string" + }, + "OrganizationMemberRole.VIEWER": { + "enum": ["viewer"], + "type": "string" + }, + "OrganizationMemberRole.MEMBER": { + "enum": ["member"], + "type": "string" + }, + "AllowedEmailDomainsRole": { "anyOf": [ { - "$ref": "#/components/schemas/DbtLocalProjectConfig" + "$ref": "#/components/schemas/OrganizationMemberRole.EDITOR" }, { - "$ref": "#/components/schemas/DbtCloudIDEProjectConfig" + "$ref": "#/components/schemas/OrganizationMemberRole.INTERACTIVE_VIEWER" }, { - "$ref": "#/components/schemas/DbtGithubProjectConfig" + "$ref": "#/components/schemas/OrganizationMemberRole.VIEWER" }, { - "$ref": "#/components/schemas/DbtBitBucketProjectConfig" - }, + "$ref": "#/components/schemas/OrganizationMemberRole.MEMBER" + } + ] + }, + "ProjectMemberRole.EDITOR": { + "enum": ["editor"], + "type": "string" + }, + "ProjectMemberRole.INTERACTIVE_VIEWER": { + "enum": ["interactive_viewer"], + "type": "string" + }, + "ProjectMemberRole.VIEWER": { + "enum": ["viewer"], + "type": "string" + }, + "AllowedEmailDomainProjectsRole": { + "anyOf": [ { - "$ref": "#/components/schemas/DbtGitlabProjectConfig" + "$ref": "#/components/schemas/ProjectMemberRole.EDITOR" }, { - "$ref": "#/components/schemas/DbtAzureDevOpsProjectConfig" + "$ref": "#/components/schemas/ProjectMemberRole.INTERACTIVE_VIEWER" }, { - "$ref": "#/components/schemas/DbtNoneProjectConfig" + "$ref": "#/components/schemas/ProjectMemberRole.VIEWER" } ] }, - "WarehouseTypes.SNOWFLAKE": { - "enum": ["snowflake"], - "type": "string" - }, - "WeekDay": { - "enum": [0, 1, 2, 3, 4, 5, 6], - "type": "number" - }, - "Pick_CreateSnowflakeCredentials.Exclude_keyofCreateSnowflakeCredentials.SensitiveCredentialsFieldNames__": { + "AllowedEmailDomains": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.SNOWFLAKE" - }, - "warehouse": { - "type": "string" + "projects": { + "items": { + "properties": { + "role": { + "$ref": "#/components/schemas/AllowedEmailDomainProjectsRole" + }, + "projectUuid": { + "type": "string" + } + }, + "required": ["role", "projectUuid"], + "type": "object" + }, + "type": "array" }, "role": { - "type": "string" - }, - "account": { - "type": "string" - }, - "requireUserCredentials": { - "type": "boolean" - }, - "database": { - "type": "string" - }, - "schema": { - "type": "string" - }, - "threads": { - "type": "number", - "format": "double" - }, - "clientSessionKeepAlive": { - "type": "boolean" - }, - "queryTag": { - "type": "string" - }, - "accessUrl": { - "type": "string" - }, - "startOfWeek": { - "allOf": [ - { - "$ref": "#/components/schemas/WeekDay" - } - ], - "nullable": true + "$ref": "#/components/schemas/AllowedEmailDomainsRole" }, - "quotedIdentifiersIgnoreCase": { - "type": "boolean" + "emailDomains": { + "items": { + "type": "string" + }, + "type": "array" }, - "override": { + "organizationUuid": { "type": "string" } }, "required": [ - "type", - "warehouse", - "account", - "database", - "schema" + "projects", + "role", + "emailDomains", + "organizationUuid" ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "type": "object" }, - "Omit_CreateSnowflakeCredentials.SensitiveCredentialsFieldNames_": { - "$ref": "#/components/schemas/Pick_CreateSnowflakeCredentials.Exclude_keyofCreateSnowflakeCredentials.SensitiveCredentialsFieldNames__", - "description": "Construct a type with the properties of T except for those in type K." - }, - "SnowflakeCredentials": { - "$ref": "#/components/schemas/Omit_CreateSnowflakeCredentials.SensitiveCredentialsFieldNames_" - }, - "WarehouseTypes.REDSHIFT": { - "enum": ["redshift"], - "type": "string" + "ApiOrganizationAllowedEmailDomains": { + "properties": { + "results": { + "$ref": "#/components/schemas/AllowedEmailDomains" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" }, - "Pick_CreateRedshiftCredentials.Exclude_keyofCreateRedshiftCredentials.SensitiveCredentialsFieldNames__": { + "Pick_AllowedEmailDomains.Exclude_keyofAllowedEmailDomains.organizationUuid__": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.REDSHIFT" + "role": { + "$ref": "#/components/schemas/AllowedEmailDomainsRole" }, - "requireUserCredentials": { - "type": "boolean" + "emailDomains": { + "items": { + "type": "string" + }, + "type": "array" }, - "schema": { - "type": "string" + "projects": { + "items": { + "properties": { + "role": { + "$ref": "#/components/schemas/AllowedEmailDomainProjectsRole" + }, + "projectUuid": { + "type": "string" + } + }, + "required": ["role", "projectUuid"], + "type": "object" + }, + "type": "array" + } + }, + "required": ["role", "emailDomains", "projects"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Omit_AllowedEmailDomains.organizationUuid_": { + "$ref": "#/components/schemas/Pick_AllowedEmailDomains.Exclude_keyofAllowedEmailDomains.organizationUuid__", + "description": "Construct a type with the properties of T except for those in type K." + }, + "UpdateAllowedEmailDomains": { + "$ref": "#/components/schemas/Omit_AllowedEmailDomains.organizationUuid_" + }, + "ApiCreateGroupResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/GroupWithMembers" }, - "threads": { - "type": "number", - "format": "double" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "Pick_Group.name_": { + "properties": { + "name": { + "type": "string", + "description": "A friendly name for the group" + } + }, + "required": ["name"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "CreateGroup": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_Group.name_" }, - "startOfWeek": { + { + "properties": { + "members": { + "items": { + "$ref": "#/components/schemas/Pick_GroupMember.userUuid_" + }, + "type": "array" + } + }, + "type": "object" + } + ] + }, + "KnexPaginatedData_Group-Array-or-GroupWithMembers-Array_": { + "properties": { + "pagination": { "allOf": [ { - "$ref": "#/components/schemas/WeekDay" + "$ref": "#/components/schemas/KnexPaginateArgs" + }, + { + "properties": { + "totalResults": { + "type": "number", + "format": "double" + }, + "totalPageCount": { + "type": "number", + "format": "double" + } + }, + "required": ["totalResults", "totalPageCount"], + "type": "object" } - ], - "nullable": true - }, - "useSshTunnel": { - "type": "boolean" - }, - "sshTunnelHost": { - "type": "string" - }, - "sshTunnelPort": { - "type": "number", - "format": "double" - }, - "sshTunnelUser": { - "type": "string" - }, - "sshTunnelPublicKey": { - "type": "string" + ] }, - "host": { - "type": "string" + "data": { + "anyOf": [ + { + "items": { + "$ref": "#/components/schemas/Group" + }, + "type": "array" + }, + { + "items": { + "$ref": "#/components/schemas/GroupWithMembers" + }, + "type": "array" + } + ] + } + }, + "required": ["data"], + "type": "object" + }, + "ApiGroupListResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/KnexPaginatedData_Group-Array-or-GroupWithMembers-Array_" }, - "port": { + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "ResourceViewItemType.DASHBOARD": { + "enum": ["dashboard"], + "type": "string" + }, + "Pick_ValidationResponse.error-or-createdAt-or-validationId_": { + "properties": { + "validationId": { "type": "number", "format": "double" }, - "dbname": { - "type": "string" - }, - "keepalivesIdle": { - "type": "number", - "format": "double" + "createdAt": { + "type": "string", + "format": "date-time" }, - "sslmode": { + "error": { "type": "string" - }, - "ra3Node": { - "type": "boolean" } }, - "required": ["type", "schema", "host", "port", "dbname"], + "required": ["validationId", "createdAt", "error"], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "Omit_CreateRedshiftCredentials.SensitiveCredentialsFieldNames_": { - "$ref": "#/components/schemas/Pick_CreateRedshiftCredentials.Exclude_keyofCreateRedshiftCredentials.SensitiveCredentialsFieldNames__", - "description": "Construct a type with the properties of T except for those in type K." - }, - "RedshiftCredentials": { - "$ref": "#/components/schemas/Omit_CreateRedshiftCredentials.SensitiveCredentialsFieldNames_" - }, - "WarehouseTypes.POSTGRES": { - "enum": ["postgres"], - "type": "string" + "ValidationSummary": { + "$ref": "#/components/schemas/Pick_ValidationResponse.error-or-createdAt-or-validationId_" }, - "Pick_CreatePostgresCredentials.Exclude_keyofCreatePostgresCredentials.SensitiveCredentialsFieldNames__": { + "Pick_DashboardBasicDetails.uuid-or-spaceUuid-or-description-or-name-or-views-or-firstViewedAt-or-pinnedListUuid-or-pinnedListOrder-or-updatedAt-or-updatedByUser-or-validationErrors_": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.POSTGRES" + "name": { + "type": "string" }, - "role": { + "description": { "type": "string" }, - "requireUserCredentials": { - "type": "boolean" + "uuid": { + "type": "string" }, - "schema": { + "spaceUuid": { "type": "string" }, - "threads": { + "pinnedListUuid": { + "type": "string", + "nullable": true + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" + }, + "views": { "type": "number", "format": "double" }, - "startOfWeek": { - "allOf": [ + "firstViewedAt": { + "anyOf": [ { - "$ref": "#/components/schemas/WeekDay" + "type": "string", + "format": "date-time" + }, + { + "type": "string" } ], "nullable": true }, - "useSshTunnel": { - "type": "boolean" + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true }, - "sshTunnelHost": { - "type": "string" - }, - "sshTunnelPort": { - "type": "number", - "format": "double" - }, - "sshTunnelUser": { - "type": "string" - }, - "sshTunnelPublicKey": { - "type": "string" - }, - "host": { - "type": "string" - }, - "port": { - "type": "number", - "format": "double" - }, - "dbname": { - "type": "string" - }, - "keepalivesIdle": { - "type": "number", - "format": "double" - }, - "sslmode": { - "type": "string" - }, - "searchPath": { - "type": "string" + "validationErrors": { + "items": { + "$ref": "#/components/schemas/ValidationSummary" + }, + "type": "array" } }, - "required": ["type", "schema", "host", "port", "dbname"], + "required": [ + "name", + "uuid", + "spaceUuid", + "pinnedListUuid", + "updatedAt", + "views", + "firstViewedAt", + "pinnedListOrder" + ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "Omit_CreatePostgresCredentials.SensitiveCredentialsFieldNames_": { - "$ref": "#/components/schemas/Pick_CreatePostgresCredentials.Exclude_keyofCreatePostgresCredentials.SensitiveCredentialsFieldNames__", - "description": "Construct a type with the properties of T except for those in type K." + "ResourceItemCategory": { + "enum": ["mostPopular", "recentlyUpdated", "pinned"], + "type": "string" }, - "PostgresCredentials": { - "$ref": "#/components/schemas/Omit_CreatePostgresCredentials.SensitiveCredentialsFieldNames_" + "ResourceViewDashboardItem": { + "properties": { + "category": { + "$ref": "#/components/schemas/ResourceItemCategory" + }, + "data": { + "$ref": "#/components/schemas/Pick_DashboardBasicDetails.uuid-or-spaceUuid-or-description-or-name-or-views-or-firstViewedAt-or-pinnedListUuid-or-pinnedListOrder-or-updatedAt-or-updatedByUser-or-validationErrors_" + }, + "type": { + "$ref": "#/components/schemas/ResourceViewItemType.DASHBOARD" + } + }, + "required": ["data", "type"], + "type": "object" }, - "WarehouseTypes.BIGQUERY": { - "enum": ["bigquery"], + "ResourceViewItemType.CHART": { + "enum": ["chart"], "type": "string" }, - "Pick_CreateBigqueryCredentials.Exclude_keyofCreateBigqueryCredentials.SensitiveCredentialsFieldNames__": { + "ChartType": { + "enum": [ + "cartesian", + "table", + "big_number", + "pie", + "funnel", + "custom" + ], + "type": "string" + }, + "Pick_SpaceQuery.uuid-or-name-or-chartType-or-chartKind-or-firstViewedAt-or-views-or-pinnedListUuid-or-pinnedListOrder-or-spaceUuid-or-description-or-updatedAt-or-updatedByUser-or-validationErrors-or-slug_": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.BIGQUERY" - }, - "requireUserCredentials": { - "type": "boolean" + "name": { + "type": "string" }, - "threads": { - "type": "number", - "format": "double" + "description": { + "type": "string" }, - "startOfWeek": { - "allOf": [ - { - "$ref": "#/components/schemas/WeekDay" - } - ], - "nullable": true + "uuid": { + "type": "string" }, - "project": { + "spaceUuid": { "type": "string" }, - "dataset": { + "pinnedListUuid": { + "type": "string", + "nullable": true + }, + "slug": { "type": "string" }, - "timeoutSeconds": { - "type": "number", - "format": "double" + "chartKind": { + "$ref": "#/components/schemas/ChartKind" }, - "priority": { + "updatedAt": { "type": "string", - "enum": ["interactive", "batch"] + "format": "date-time" }, - "retries": { + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" + }, + "views": { "type": "number", "format": "double" }, - "location": { - "type": "string" + "firstViewedAt": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "string" + } + ], + "nullable": true }, - "maximumBytesBilled": { + "pinnedListOrder": { "type": "number", - "format": "double" + "format": "double", + "nullable": true }, - "executionProject": { - "type": "string" + "validationErrors": { + "items": { + "$ref": "#/components/schemas/ValidationSummary" + }, + "type": "array" + }, + "chartType": { + "$ref": "#/components/schemas/ChartType" } }, - "required": ["type", "project", "dataset"], + "required": [ + "name", + "uuid", + "spaceUuid", + "pinnedListUuid", + "slug", + "updatedAt", + "views", + "firstViewedAt", + "pinnedListOrder" + ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "Omit_CreateBigqueryCredentials.SensitiveCredentialsFieldNames_": { - "$ref": "#/components/schemas/Pick_CreateBigqueryCredentials.Exclude_keyofCreateBigqueryCredentials.SensitiveCredentialsFieldNames__", - "description": "Construct a type with the properties of T except for those in type K." - }, - "BigqueryCredentials": { - "$ref": "#/components/schemas/Omit_CreateBigqueryCredentials.SensitiveCredentialsFieldNames_" - }, - "WarehouseTypes.DATABRICKS": { - "enum": ["databricks"], + "ChartSourceType": { + "enum": ["dbt_explore", "sql", "semantic_layer"], "type": "string" }, - "Pick_CreateDatabricksCredentials.Exclude_keyofCreateDatabricksCredentials.SensitiveCredentialsFieldNames__": { + "ResourceViewChartItem": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.DATABRICKS" - }, - "requireUserCredentials": { - "type": "boolean" - }, - "database": { - "type": "string" + "category": { + "$ref": "#/components/schemas/ResourceItemCategory" }, - "startOfWeek": { + "data": { "allOf": [ { - "$ref": "#/components/schemas/WeekDay" + "$ref": "#/components/schemas/Pick_SpaceQuery.uuid-or-name-or-chartType-or-chartKind-or-firstViewedAt-or-views-or-pinnedListUuid-or-pinnedListOrder-or-spaceUuid-or-description-or-updatedAt-or-updatedByUser-or-validationErrors-or-slug_" + }, + { + "properties": { + "source": { + "$ref": "#/components/schemas/ChartSourceType" + } + }, + "type": "object" } - ], - "nullable": true - }, - "catalog": { - "type": "string" - }, - "serverHostName": { - "type": "string" + ] }, - "httpPath": { - "type": "string" + "type": { + "$ref": "#/components/schemas/ResourceViewItemType.CHART" } }, - "required": ["type", "database", "serverHostName", "httpPath"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Omit_CreateDatabricksCredentials.SensitiveCredentialsFieldNames_": { - "$ref": "#/components/schemas/Pick_CreateDatabricksCredentials.Exclude_keyofCreateDatabricksCredentials.SensitiveCredentialsFieldNames__", - "description": "Construct a type with the properties of T except for those in type K." - }, - "DatabricksCredentials": { - "$ref": "#/components/schemas/Omit_CreateDatabricksCredentials.SensitiveCredentialsFieldNames_" + "required": ["data", "type"], + "type": "object" }, - "WarehouseTypes.TRINO": { - "enum": ["trino"], + "ResourceViewItemType.SPACE": { + "enum": ["space"], "type": "string" }, - "Pick_CreateTrinoCredentials.Exclude_keyofCreateTrinoCredentials.SensitiveCredentialsFieldNames__": { + "Pick_Space.projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-organizationUuid_": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.TRINO" - }, - "requireUserCredentials": { - "type": "boolean" + "name": { + "type": "string" }, - "schema": { + "uuid": { "type": "string" }, - "startOfWeek": { - "allOf": [ - { - "$ref": "#/components/schemas/WeekDay" - } - ], - "nullable": true + "projectUuid": { + "type": "string" }, - "host": { + "organizationUuid": { "type": "string" }, - "port": { - "type": "number", - "format": "double" + "pinnedListUuid": { + "type": "string", + "nullable": true }, - "dbname": { - "type": "string" + "isPrivate": { + "type": "boolean" }, - "http_scheme": { - "type": "string" + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true } }, "required": [ - "type", - "schema", - "host", - "port", - "dbname", - "http_scheme" + "name", + "uuid", + "projectUuid", + "organizationUuid", + "pinnedListUuid", + "isPrivate", + "pinnedListOrder" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "Omit_CreateTrinoCredentials.SensitiveCredentialsFieldNames_": { - "$ref": "#/components/schemas/Pick_CreateTrinoCredentials.Exclude_keyofCreateTrinoCredentials.SensitiveCredentialsFieldNames__", - "description": "Construct a type with the properties of T except for those in type K." + "ResourceViewSpaceItem": { + "properties": { + "data": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_Space.projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-organizationUuid_" + }, + { + "properties": { + "chartCount": { + "type": "number", + "format": "double" + }, + "dashboardCount": { + "type": "number", + "format": "double" + }, + "accessListLength": { + "type": "number", + "format": "double" + }, + "access": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "chartCount", + "dashboardCount", + "accessListLength", + "access" + ], + "type": "object" + } + ] + }, + "type": { + "$ref": "#/components/schemas/ResourceViewItemType.SPACE" + } + }, + "required": ["data", "type"], + "type": "object" }, - "TrinoCredentials": { - "$ref": "#/components/schemas/Omit_CreateTrinoCredentials.SensitiveCredentialsFieldNames_" + "PinnedItems": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/ResourceViewDashboardItem" + }, + { + "$ref": "#/components/schemas/ResourceViewChartItem" + }, + { + "$ref": "#/components/schemas/ResourceViewSpaceItem" + } + ] + }, + "type": "array" }, - "WarehouseCredentials": { - "anyOf": [ - { - "$ref": "#/components/schemas/SnowflakeCredentials" - }, - { - "$ref": "#/components/schemas/RedshiftCredentials" - }, - { - "$ref": "#/components/schemas/PostgresCredentials" - }, - { - "$ref": "#/components/schemas/BigqueryCredentials" - }, - { - "$ref": "#/components/schemas/DatabricksCredentials" + "ApiPinnedItems": { + "properties": { + "results": { + "$ref": "#/components/schemas/PinnedItems" }, - { - "$ref": "#/components/schemas/TrinoCredentials" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } - ] - }, - "SupportedDbtVersions": { - "enum": ["v1.4", "v1.5", "v1.6", "v1.7", "v1.8"], - "type": "string" + }, + "required": ["results", "status"], + "type": "object" }, - "SemanticLayerType.DBT": { - "enum": ["DBT"], + "ResourceViewItemType": { + "enum": ["chart", "dashboard", "space"], "type": "string" }, - "DbtSemanticLayerConnection": { + "Pick_ResourceViewItem-at-data.uuid-or-pinnedListOrder_": { "properties": { - "token": { - "type": "string" - }, - "domain": { + "uuid": { "type": "string" }, - "environmentId": { - "type": "string" + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true + } + }, + "required": ["uuid", "pinnedListOrder"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "UpdatePinnedItemOrder": { + "properties": { + "data": { + "$ref": "#/components/schemas/Pick_ResourceViewItem-at-data.uuid-or-pinnedListOrder_" }, "type": { - "$ref": "#/components/schemas/SemanticLayerType.DBT" + "$ref": "#/components/schemas/ResourceViewItemType" } }, - "required": ["token", "domain", "environmentId", "type"], + "required": ["data", "type"], "type": "object" }, - "SemanticLayerType.CUBE": { - "enum": ["CUBE"], + "DbtProjectType.DBT": { + "enum": ["dbt"], "type": "string" }, - "CubeSemanticLayerConnection": { + "DbtProjectEnvironmentVariable": { "properties": { - "token": { + "value": { "type": "string" }, - "domain": { + "key": { "type": "string" - }, - "type": { - "$ref": "#/components/schemas/SemanticLayerType.CUBE" } }, - "required": ["token", "domain", "type"], + "required": ["value", "key"], "type": "object" }, - "SemanticLayerConnection": { - "anyOf": [ - { - "$ref": "#/components/schemas/DbtSemanticLayerConnection" - }, - { - "$ref": "#/components/schemas/CubeSemanticLayerConnection" - } - ] + "DbtProjectType": { + "enum": [ + "dbt", + "dbt_cloud_ide", + "github", + "gitlab", + "bitbucket", + "azure_devops", + "none" + ], + "type": "string" }, - "Project": { + "DbtLocalProjectConfig": { "properties": { - "semanticLayerConnection": { - "$ref": "#/components/schemas/SemanticLayerConnection" - }, - "dbtVersion": { - "$ref": "#/components/schemas/SupportedDbtVersions" - }, - "upstreamProjectUuid": { - "type": "string" + "type": { + "$ref": "#/components/schemas/DbtProjectType.DBT" }, - "pinnedListUuid": { + "target": { "type": "string" }, - "warehouseConnection": { - "$ref": "#/components/schemas/WarehouseCredentials" - }, - "dbtConnection": { - "$ref": "#/components/schemas/DbtProjectConfig" + "environment": { + "items": { + "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" + }, + "type": "array" }, - "type": { - "$ref": "#/components/schemas/ProjectType" + "profiles_dir": { + "type": "string" }, - "name": { + "project_dir": { "type": "string" + } + }, + "required": ["type"], + "type": "object", + "additionalProperties": true + }, + "DbtProjectType.DBT_CLOUD_IDE": { + "enum": ["dbt_cloud_ide"], + "type": "string" + }, + "DbtCloudIDEProjectConfig": { + "properties": { + "type": { + "$ref": "#/components/schemas/DbtProjectType.DBT_CLOUD_IDE" }, - "projectUuid": { + "api_key": { "type": "string" }, - "organizationUuid": { + "environment_id": { "type": "string" } }, - "required": [ - "dbtVersion", - "dbtConnection", - "type", - "name", - "projectUuid", - "organizationUuid" - ], - "type": "object" + "required": ["type", "api_key", "environment_id"], + "type": "object", + "additionalProperties": true }, - "ApiProjectResponse": { - "properties": { - "results": { - "$ref": "#/components/schemas/Project" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "DbtProjectType.GITHUB": { + "enum": ["github"], + "type": "string" }, - "Pick_SavedChart.uuid-or-name-or-description-or-spaceName-or-spaceUuid-or-projectUuid-or-organizationUuid-or-pinnedListUuid-or-dashboardUuid-or-dashboardName-or-slug_": { + "DbtGithubProjectConfig": { "properties": { - "name": { - "type": "string" + "type": { + "$ref": "#/components/schemas/DbtProjectType.GITHUB" }, - "description": { + "target": { "type": "string" }, - "uuid": { - "type": "string" + "environment": { + "items": { + "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" + }, + "type": "array" }, - "spaceName": { + "personal_access_token": { "type": "string" }, - "spaceUuid": { + "repository": { "type": "string" }, - "projectUuid": { + "branch": { "type": "string" }, - "organizationUuid": { + "project_sub_path": { "type": "string" }, - "pinnedListUuid": { - "type": "string", - "nullable": true - }, - "dashboardUuid": { - "type": "string", - "nullable": true - }, - "dashboardName": { - "type": "string", - "nullable": true - }, - "slug": { + "host_domain": { "type": "string" } }, "required": [ - "name", - "uuid", - "spaceName", - "spaceUuid", - "projectUuid", - "organizationUuid", - "pinnedListUuid", - "dashboardUuid", - "dashboardName", - "slug" + "type", + "personal_access_token", + "repository", + "branch", + "project_sub_path" ], "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "additionalProperties": true }, - "ChartSummary": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_SavedChart.uuid-or-name-or-description-or-spaceName-or-spaceUuid-or-projectUuid-or-organizationUuid-or-pinnedListUuid-or-dashboardUuid-or-dashboardName-or-slug_" - }, - { - "properties": { - "source": { - "$ref": "#/components/schemas/ChartSourceType" - }, - "chartKind": { - "$ref": "#/components/schemas/ChartKind" - }, - "chartType": { - "$ref": "#/components/schemas/ChartType" - } - }, - "type": "object" - } - ] + "DbtProjectType.BITBUCKET": { + "enum": ["bitbucket"], + "type": "string" }, - "Pick_SavedChart.updatedAt-or-updatedByUser-or-pinnedListOrder_": { + "DbtBitBucketProjectConfig": { "properties": { - "updatedAt": { - "type": "string", - "format": "date-time" + "type": { + "$ref": "#/components/schemas/DbtProjectType.BITBUCKET" }, - "updatedByUser": { - "$ref": "#/components/schemas/UpdatedByUser" + "target": { + "type": "string" }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true - } - }, - "required": ["updatedAt", "pinnedListOrder"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "ViewStatistics": { - "properties": { - "firstViewedAt": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "string" - } - ], - "nullable": true + "environment": { + "items": { + "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" + }, + "type": "array" }, - "views": { - "type": "number", - "format": "double" - } - }, - "required": ["firstViewedAt", "views"], - "type": "object" - }, - "SpaceQuery": { - "allOf": [ - { - "$ref": "#/components/schemas/ChartSummary" + "username": { + "type": "string" }, - { - "$ref": "#/components/schemas/Pick_SavedChart.updatedAt-or-updatedByUser-or-pinnedListOrder_" + "personal_access_token": { + "type": "string" }, - { - "$ref": "#/components/schemas/ViewStatistics" + "repository": { + "type": "string" }, - { - "properties": { - "validationErrors": { - "items": { - "$ref": "#/components/schemas/ValidationSummary" - }, - "type": "array" - } - }, - "type": "object" - } - ] - }, - "ApiChartListResponse": { - "properties": { - "results": { - "items": { - "$ref": "#/components/schemas/SpaceQuery" - }, - "type": "array" + "branch": { + "type": "string" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false + "project_sub_path": { + "type": "string" + }, + "host_domain": { + "type": "string" } }, - "required": ["results", "status"], - "type": "object" + "required": [ + "type", + "username", + "personal_access_token", + "repository", + "branch", + "project_sub_path" + ], + "type": "object", + "additionalProperties": true }, - "ApiChartSummaryListResponse": { + "DbtProjectType.GITLAB": { + "enum": ["gitlab"], + "type": "string" + }, + "DbtGitlabProjectConfig": { "properties": { - "results": { + "type": { + "$ref": "#/components/schemas/DbtProjectType.GITLAB" + }, + "target": { + "type": "string" + }, + "environment": { "items": { - "$ref": "#/components/schemas/ChartSummary" + "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" }, "type": "array" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "Pick_Space.organizationUuid-or-projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-slug_": { - "properties": { - "name": { + "personal_access_token": { "type": "string" }, - "uuid": { + "repository": { "type": "string" }, - "projectUuid": { + "branch": { "type": "string" }, - "organizationUuid": { + "project_sub_path": { "type": "string" }, - "pinnedListUuid": { - "type": "string", - "nullable": true - }, - "slug": { + "host_domain": { "type": "string" - }, - "isPrivate": { - "type": "boolean" - }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true } }, "required": [ - "name", - "uuid", - "projectUuid", - "organizationUuid", - "pinnedListUuid", - "slug", - "isPrivate", - "pinnedListOrder" + "type", + "personal_access_token", + "repository", + "branch", + "project_sub_path" ], "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "additionalProperties": true }, - "SpaceMemberRole": { - "enum": ["viewer", "editor", "admin"], + "DbtProjectType.AZURE_DEVOPS": { + "enum": ["azure_devops"], "type": "string" }, - "SpaceShare": { + "DbtAzureDevOpsProjectConfig": { "properties": { - "inheritedFrom": { - "type": "string", - "enum": [ - "organization", - "project", - "group", - "space_group" - ] + "type": { + "$ref": "#/components/schemas/DbtProjectType.AZURE_DEVOPS" }, - "inheritedRole": { - "anyOf": [ - { - "$ref": "#/components/schemas/OrganizationMemberRole" - }, - { - "$ref": "#/components/schemas/ProjectMemberRole" - } - ] + "target": { + "type": "string" }, - "projectRole": { - "$ref": "#/components/schemas/ProjectMemberRole" + "environment": { + "items": { + "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" + }, + "type": "array" }, - "hasDirectAccess": { - "type": "boolean" + "personal_access_token": { + "type": "string" }, - "role": { - "$ref": "#/components/schemas/SpaceMemberRole" + "organization": { + "type": "string" }, - "email": { + "project": { "type": "string" }, - "lastName": { + "repository": { "type": "string" }, - "firstName": { + "branch": { "type": "string" }, - "userUuid": { + "project_sub_path": { "type": "string" } }, "required": [ - "hasDirectAccess", - "role", - "email", - "lastName", - "firstName", - "userUuid" + "type", + "personal_access_token", + "organization", + "project", + "repository", + "branch", + "project_sub_path" ], - "type": "object" + "type": "object", + "additionalProperties": true }, - "SpaceSummary": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_Space.organizationUuid-or-projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-slug_" - }, - { - "properties": { - "dashboardCount": { - "type": "number", - "format": "double" - }, - "chartCount": { - "type": "number", - "format": "double" - }, - "access": { - "items": { - "type": "string" - }, - "type": "array" - }, - "userAccess": { - "$ref": "#/components/schemas/SpaceShare" - } - }, - "required": ["dashboardCount", "chartCount", "access"], - "type": "object" - } - ] + "DbtProjectType.NONE": { + "enum": ["none"], + "type": "string" }, - "ApiSpaceSummaryListResponse": { + "DbtNoneProjectConfig": { "properties": { - "results": { + "type": { + "$ref": "#/components/schemas/DbtProjectType.NONE" + }, + "target": { + "type": "string" + }, + "environment": { "items": { - "$ref": "#/components/schemas/SpaceSummary" + "$ref": "#/components/schemas/DbtProjectEnvironmentVariable" }, "type": "array" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false + "hideRefreshButton": { + "type": "boolean" } }, - "required": ["results", "status"], - "type": "object" + "required": ["type"], + "type": "object", + "additionalProperties": true }, - "ProjectMemberProfile": { + "DbtProjectConfig": { + "anyOf": [ + { + "$ref": "#/components/schemas/DbtLocalProjectConfig" + }, + { + "$ref": "#/components/schemas/DbtCloudIDEProjectConfig" + }, + { + "$ref": "#/components/schemas/DbtGithubProjectConfig" + }, + { + "$ref": "#/components/schemas/DbtBitBucketProjectConfig" + }, + { + "$ref": "#/components/schemas/DbtGitlabProjectConfig" + }, + { + "$ref": "#/components/schemas/DbtAzureDevOpsProjectConfig" + }, + { + "$ref": "#/components/schemas/DbtNoneProjectConfig" + } + ] + }, + "WarehouseTypes.SNOWFLAKE": { + "enum": ["snowflake"], + "type": "string" + }, + "WeekDay": { + "enum": [0, 1, 2, 3, 4, 5, 6], + "type": "number" + }, + "Pick_CreateSnowflakeCredentials.Exclude_keyofCreateSnowflakeCredentials.SensitiveCredentialsFieldNames__": { "properties": { - "lastName": { + "type": { + "$ref": "#/components/schemas/WarehouseTypes.SNOWFLAKE" + }, + "warehouse": { "type": "string" }, - "firstName": { + "role": { "type": "string" }, - "email": { + "account": { "type": "string" }, - "role": { - "$ref": "#/components/schemas/ProjectMemberRole" + "requireUserCredentials": { + "type": "boolean" }, - "projectUuid": { + "database": { "type": "string" }, - "userUuid": { + "schema": { "type": "string" - } - }, - "required": [ - "lastName", - "firstName", - "email", - "role", - "projectUuid", - "userUuid" - ], - "type": "object" - }, - "ApiProjectAccessListResponse": { - "properties": { - "results": { - "items": { - "$ref": "#/components/schemas/ProjectMemberProfile" - }, - "type": "array" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "ApiGetProjectMemberResponse": { - "properties": { - "results": { - "$ref": "#/components/schemas/ProjectMemberProfile" + "threads": { + "type": "number", + "format": "double" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "CreateProjectMember": { - "properties": { - "sendEmail": { + "clientSessionKeepAlive": { "type": "boolean" }, - "role": { - "$ref": "#/components/schemas/ProjectMemberRole" + "queryTag": { + "type": "string" }, - "email": { + "accessUrl": { + "type": "string" + }, + "startOfWeek": { + "allOf": [ + { + "$ref": "#/components/schemas/WeekDay" + } + ], + "nullable": true + }, + "quotedIdentifiersIgnoreCase": { + "type": "boolean" + }, + "override": { "type": "string" } }, - "required": ["sendEmail", "role", "email"], - "type": "object" + "required": [ + "type", + "warehouse", + "account", + "database", + "schema" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "UpdateProjectMember": { - "properties": { - "role": { - "$ref": "#/components/schemas/ProjectMemberRole" - } - }, - "required": ["role"], - "type": "object" - }, - "ApiGetProjectGroupAccesses": { - "properties": { - "results": { - "items": { - "$ref": "#/components/schemas/ProjectGroupAccess" - }, - "type": "array" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "Omit_CreateSnowflakeCredentials.SensitiveCredentialsFieldNames_": { + "$ref": "#/components/schemas/Pick_CreateSnowflakeCredentials.Exclude_keyofCreateSnowflakeCredentials.SensitiveCredentialsFieldNames__", + "description": "Construct a type with the properties of T except for those in type K." }, - "Record_string._type-DimensionType--__": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" + "SnowflakeCredentials": { + "$ref": "#/components/schemas/Omit_CreateSnowflakeCredentials.SensitiveCredentialsFieldNames_" }, - "Record_string.unknown_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" + "WarehouseTypes.REDSHIFT": { + "enum": ["redshift"], + "type": "string" }, - "ApiSqlQueryResults": { + "Pick_CreateRedshiftCredentials.Exclude_keyofCreateRedshiftCredentials.SensitiveCredentialsFieldNames__": { "properties": { - "rows": { - "items": { - "$ref": "#/components/schemas/Record_string.unknown_" - }, - "type": "array" + "type": { + "$ref": "#/components/schemas/WarehouseTypes.REDSHIFT" }, - "fields": { - "$ref": "#/components/schemas/Record_string._type-DimensionType--__" + "requireUserCredentials": { + "type": "boolean" + }, + "schema": { + "type": "string" + }, + "threads": { + "type": "number", + "format": "double" + }, + "startOfWeek": { + "allOf": [ + { + "$ref": "#/components/schemas/WeekDay" + } + ], + "nullable": true + }, + "useSshTunnel": { + "type": "boolean" + }, + "sshTunnelHost": { + "type": "string" + }, + "sshTunnelPort": { + "type": "number", + "format": "double" + }, + "sshTunnelUser": { + "type": "string" + }, + "sshTunnelPublicKey": { + "type": "string" + }, + "host": { + "type": "string" + }, + "port": { + "type": "number", + "format": "double" + }, + "dbname": { + "type": "string" + }, + "keepalivesIdle": { + "type": "number", + "format": "double" + }, + "sslmode": { + "type": "string" + }, + "ra3Node": { + "type": "boolean" } }, - "required": ["rows", "fields"], - "type": "object" - }, - "Record_string.number_": { - "properties": {}, + "required": ["type", "schema", "host", "port", "dbname"], "type": "object", - "description": "Construct a type with a set of properties K of type T" + "description": "From T, pick a set of properties whose keys are in the union K" }, - "ApiCalculateTotalResponse": { - "properties": { - "results": { - "$ref": "#/components/schemas/Record_string.number_" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "Omit_CreateRedshiftCredentials.SensitiveCredentialsFieldNames_": { + "$ref": "#/components/schemas/Pick_CreateRedshiftCredentials.Exclude_keyofCreateRedshiftCredentials.SensitiveCredentialsFieldNames__", + "description": "Construct a type with the properties of T except for those in type K." }, - "DateGranularity": { - "enum": ["Day", "Week", "Month", "Quarter", "Year"], + "RedshiftCredentials": { + "$ref": "#/components/schemas/Omit_CreateRedshiftCredentials.SensitiveCredentialsFieldNames_" + }, + "WarehouseTypes.POSTGRES": { + "enum": ["postgres"], "type": "string" }, - "MetricQueryRequest": { + "Pick_CreatePostgresCredentials.Exclude_keyofCreatePostgresCredentials.SensitiveCredentialsFieldNames__": { "properties": { - "timezone": { - "type": "string" + "type": { + "$ref": "#/components/schemas/WarehouseTypes.POSTGRES" }, - "metadata": { - "properties": { - "hasADateDimension": { - "$ref": "#/components/schemas/Pick_CompiledDimension.label-or-name_" - } - }, - "required": ["hasADateDimension"], - "type": "object" + "role": { + "type": "string" }, - "granularity": { - "$ref": "#/components/schemas/DateGranularity" + "requireUserCredentials": { + "type": "boolean" }, - "customDimensions": { - "items": { - "$ref": "#/components/schemas/CustomDimension" - }, - "type": "array" + "schema": { + "type": "string" }, - "csvLimit": { + "threads": { "type": "number", "format": "double" }, - "additionalMetrics": { - "items": { - "$ref": "#/components/schemas/AdditionalMetric" - }, - "type": "array" + "startOfWeek": { + "allOf": [ + { + "$ref": "#/components/schemas/WeekDay" + } + ], + "nullable": true }, - "tableCalculations": { - "items": { - "$ref": "#/components/schemas/TableCalculation" - }, - "type": "array" + "useSshTunnel": { + "type": "boolean" }, - "limit": { + "sshTunnelHost": { + "type": "string" + }, + "sshTunnelPort": { "type": "number", "format": "double" }, - "sorts": { - "items": { - "$ref": "#/components/schemas/SortField" - }, - "type": "array" + "sshTunnelUser": { + "type": "string" }, - "filters": { - "properties": { - "tableCalculations": {}, - "metrics": {}, - "dimensions": {} - }, - "type": "object" + "sshTunnelPublicKey": { + "type": "string" }, - "metrics": { - "items": { - "$ref": "#/components/schemas/FieldId" - }, - "type": "array" + "host": { + "type": "string" }, - "dimensions": { - "items": { - "$ref": "#/components/schemas/FieldId" - }, - "type": "array" + "port": { + "type": "number", + "format": "double" }, - "exploreName": { + "dbname": { "type": "string" - } - }, - "required": [ - "tableCalculations", - "limit", - "sorts", - "filters", - "metrics", - "dimensions", - "exploreName" - ], - "type": "object" - }, - "CalculateTotalFromQuery": { - "properties": { - "explore": { + }, + "keepalivesIdle": { + "type": "number", + "format": "double" + }, + "sslmode": { "type": "string" }, - "metricQuery": { - "$ref": "#/components/schemas/MetricQueryRequest" + "searchPath": { + "type": "string" } }, - "required": ["explore", "metricQuery"], - "type": "object" - }, - "Record_string.DbtExposure_": { - "properties": {}, + "required": ["type", "schema", "host", "port", "dbname"], "type": "object", - "description": "Construct a type with a set of properties K of type T" + "description": "From T, pick a set of properties whose keys are in the union K" }, - "Pick_CreateRedshiftCredentials-or-CreatePostgresCredentials-or-CreateSnowflakeCredentials-or-CreateTrinoCredentials.type-or-user_": { - "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.SNOWFLAKE" - }, - "user": { - "type": "string" - } - }, - "required": ["type", "user"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "Omit_CreatePostgresCredentials.SensitiveCredentialsFieldNames_": { + "$ref": "#/components/schemas/Pick_CreatePostgresCredentials.Exclude_keyofCreatePostgresCredentials.SensitiveCredentialsFieldNames__", + "description": "Construct a type with the properties of T except for those in type K." }, - "Pick_CreateBigqueryCredentials.type_": { - "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.BIGQUERY" - } - }, - "required": ["type"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "PostgresCredentials": { + "$ref": "#/components/schemas/Omit_CreatePostgresCredentials.SensitiveCredentialsFieldNames_" }, - "Pick_CreateDatabricksCredentials.type_": { - "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.DATABRICKS" - } - }, - "required": ["type"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "WarehouseTypes.BIGQUERY": { + "enum": ["bigquery"], + "type": "string" }, - "UserWarehouseCredentials": { + "Pick_CreateBigqueryCredentials.Exclude_keyofCreateBigqueryCredentials.SensitiveCredentialsFieldNames__": { "properties": { - "credentials": { - "anyOf": [ - { - "$ref": "#/components/schemas/Pick_CreateRedshiftCredentials-or-CreatePostgresCredentials-or-CreateSnowflakeCredentials-or-CreateTrinoCredentials.type-or-user_" - }, - { - "$ref": "#/components/schemas/Pick_CreateBigqueryCredentials.type_" - }, + "type": { + "$ref": "#/components/schemas/WarehouseTypes.BIGQUERY" + }, + "requireUserCredentials": { + "type": "boolean" + }, + "threads": { + "type": "number", + "format": "double" + }, + "startOfWeek": { + "allOf": [ { - "$ref": "#/components/schemas/Pick_CreateDatabricksCredentials.type_" + "$ref": "#/components/schemas/WeekDay" } - ] + ], + "nullable": true }, - "updatedAt": { - "type": "string", - "format": "date-time" + "project": { + "type": "string" }, - "createdAt": { + "dataset": { + "type": "string" + }, + "timeoutSeconds": { + "type": "number", + "format": "double" + }, + "priority": { "type": "string", - "format": "date-time" + "enum": ["interactive", "batch"] }, - "name": { - "type": "string" + "retries": { + "type": "number", + "format": "double" }, - "userUuid": { + "location": { "type": "string" }, - "uuid": { + "maximumBytesBilled": { + "type": "number", + "format": "double" + }, + "executionProject": { "type": "string" } }, - "required": [ - "credentials", - "updatedAt", - "createdAt", - "name", - "userUuid", - "uuid" - ], - "type": "object" + "required": ["type", "project", "dataset"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "UpdateMetadata": { - "properties": { - "upstreamProjectUuid": { - "type": "string", - "nullable": true - } - }, - "type": "object" + "Omit_CreateBigqueryCredentials.SensitiveCredentialsFieldNames_": { + "$ref": "#/components/schemas/Pick_CreateBigqueryCredentials.Exclude_keyofCreateBigqueryCredentials.SensitiveCredentialsFieldNames__", + "description": "Construct a type with the properties of T except for those in type K." }, - "CacheMetadata": { - "properties": { - "cacheHit": { - "type": "boolean" - }, - "cacheUpdatedTime": { - "type": "string", - "format": "date-time" - } - }, - "required": ["cacheHit"], - "type": "object" + "BigqueryCredentials": { + "$ref": "#/components/schemas/Omit_CreateBigqueryCredentials.SensitiveCredentialsFieldNames_" }, - "Record_string.Item-or-AdditionalMetric_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" + "WarehouseTypes.DATABRICKS": { + "enum": ["databricks"], + "type": "string" }, - "ApiRunQueryResponse": { + "Pick_CreateDatabricksCredentials.Exclude_keyofCreateDatabricksCredentials.SensitiveCredentialsFieldNames__": { "properties": { - "results": { - "properties": { - "fields": { - "$ref": "#/components/schemas/Record_string.Item-or-AdditionalMetric_" - }, - "rows": { - "items": {}, - "type": "array" - }, - "cacheMetadata": { - "$ref": "#/components/schemas/CacheMetadata" - }, - "metricQuery": { - "$ref": "#/components/schemas/MetricQueryResponse" + "type": { + "$ref": "#/components/schemas/WarehouseTypes.DATABRICKS" + }, + "requireUserCredentials": { + "type": "boolean" + }, + "database": { + "type": "string" + }, + "startOfWeek": { + "allOf": [ + { + "$ref": "#/components/schemas/WeekDay" } - }, - "required": ["rows", "cacheMetadata", "metricQuery"], - "type": "object" + ], + "nullable": true }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "Pick_LightdashUser.userUuid-or-firstName-or-lastName_": { - "properties": { - "userUuid": { + "catalog": { "type": "string" }, - "firstName": { + "serverHostName": { "type": "string" }, - "lastName": { + "httpPath": { "type": "string" } }, - "required": ["userUuid", "firstName", "lastName"], + "required": ["type", "database", "serverHostName", "httpPath"], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "Pick_ChartVersion.chartUuid-or-versionUuid-or-createdAt-or-createdBy_": { + "Omit_CreateDatabricksCredentials.SensitiveCredentialsFieldNames_": { + "$ref": "#/components/schemas/Pick_CreateDatabricksCredentials.Exclude_keyofCreateDatabricksCredentials.SensitiveCredentialsFieldNames__", + "description": "Construct a type with the properties of T except for those in type K." + }, + "DatabricksCredentials": { + "$ref": "#/components/schemas/Omit_CreateDatabricksCredentials.SensitiveCredentialsFieldNames_" + }, + "WarehouseTypes.TRINO": { + "enum": ["trino"], + "type": "string" + }, + "Pick_CreateTrinoCredentials.Exclude_keyofCreateTrinoCredentials.SensitiveCredentialsFieldNames__": { "properties": { - "createdAt": { - "type": "string", - "format": "date-time" + "type": { + "$ref": "#/components/schemas/WarehouseTypes.TRINO" }, - "chartUuid": { - "type": "string" + "requireUserCredentials": { + "type": "boolean" }, - "versionUuid": { + "schema": { "type": "string" }, - "createdBy": { + "startOfWeek": { "allOf": [ { - "$ref": "#/components/schemas/Pick_LightdashUser.userUuid-or-firstName-or-lastName_" + "$ref": "#/components/schemas/WeekDay" } ], "nullable": true + }, + "host": { + "type": "string" + }, + "port": { + "type": "number", + "format": "double" + }, + "dbname": { + "type": "string" + }, + "http_scheme": { + "type": "string" } }, "required": [ - "createdAt", - "chartUuid", - "versionUuid", - "createdBy" + "type", + "schema", + "host", + "port", + "dbname", + "http_scheme" ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "ChartVersionSummary": { - "$ref": "#/components/schemas/Pick_ChartVersion.chartUuid-or-versionUuid-or-createdAt-or-createdBy_" - }, - "ChartHistory": { - "properties": { - "history": { - "items": { - "$ref": "#/components/schemas/ChartVersionSummary" - }, - "type": "array" - } - }, - "required": ["history"], - "type": "object" + "Omit_CreateTrinoCredentials.SensitiveCredentialsFieldNames_": { + "$ref": "#/components/schemas/Pick_CreateTrinoCredentials.Exclude_keyofCreateTrinoCredentials.SensitiveCredentialsFieldNames__", + "description": "Construct a type with the properties of T except for those in type K." }, - "ApiGetChartHistoryResponse": { - "properties": { - "results": { - "$ref": "#/components/schemas/ChartHistory" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "TrinoCredentials": { + "$ref": "#/components/schemas/Omit_CreateTrinoCredentials.SensitiveCredentialsFieldNames_" }, - "SavedChart": { - "properties": { - "slug": { - "type": "string" - }, - "access": { - "items": { - "$ref": "#/components/schemas/SpaceShare" - }, - "type": "array" + "WarehouseCredentials": { + "anyOf": [ + { + "$ref": "#/components/schemas/SnowflakeCredentials" }, - "isPrivate": { - "type": "boolean" + { + "$ref": "#/components/schemas/RedshiftCredentials" }, - "colorPalette": { - "items": { - "type": "string" - }, - "type": "array" + { + "$ref": "#/components/schemas/PostgresCredentials" }, - "dashboardName": { - "type": "string", - "nullable": true + { + "$ref": "#/components/schemas/BigqueryCredentials" }, - "dashboardUuid": { - "type": "string", - "nullable": true + { + "$ref": "#/components/schemas/DatabricksCredentials" }, - "pinnedListOrder": { - "type": "number", - "format": "double", - "nullable": true + { + "$ref": "#/components/schemas/TrinoCredentials" + } + ] + }, + "SupportedDbtVersions": { + "enum": ["v1.4", "v1.5", "v1.6", "v1.7", "v1.8"], + "type": "string" + }, + "SemanticLayerType.DBT": { + "enum": ["DBT"], + "type": "string" + }, + "DbtSemanticLayerConnection": { + "properties": { + "token": { + "type": "string" }, - "pinnedListUuid": { - "type": "string", - "nullable": true + "domain": { + "type": "string" }, - "spaceName": { + "environmentId": { "type": "string" }, - "spaceUuid": { + "type": { + "$ref": "#/components/schemas/SemanticLayerType.DBT" + } + }, + "required": ["token", "domain", "environmentId", "type"], + "type": "object" + }, + "SemanticLayerType.CUBE": { + "enum": ["CUBE"], + "type": "string" + }, + "CubeSemanticLayerConnection": { + "properties": { + "token": { "type": "string" }, - "organizationUuid": { + "domain": { "type": "string" }, - "updatedByUser": { - "$ref": "#/components/schemas/UpdatedByUser" + "type": { + "$ref": "#/components/schemas/SemanticLayerType.CUBE" + } + }, + "required": ["token", "domain", "type"], + "type": "object" + }, + "SemanticLayerConnection": { + "anyOf": [ + { + "$ref": "#/components/schemas/DbtSemanticLayerConnection" }, - "updatedAt": { + { + "$ref": "#/components/schemas/CubeSemanticLayerConnection" + } + ] + }, + "Project": { + "properties": { + "createdByUserUuid": { "type": "string", - "format": "date-time" - }, - "tableConfig": { - "properties": { - "columnOrder": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": ["columnOrder"], - "type": "object" + "nullable": true }, - "chartConfig": { - "$ref": "#/components/schemas/ChartConfig" + "schedulerTimezone": { + "type": "string" }, - "pivotConfig": { - "properties": { - "columns": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": ["columns"], - "type": "object" + "semanticLayerConnection": { + "$ref": "#/components/schemas/SemanticLayerConnection" }, - "metricQuery": { - "$ref": "#/components/schemas/MetricQuery" + "dbtVersion": { + "$ref": "#/components/schemas/SupportedDbtVersions" }, - "tableName": { + "upstreamProjectUuid": { "type": "string" }, - "description": { + "pinnedListUuid": { "type": "string" }, + "warehouseConnection": { + "$ref": "#/components/schemas/WarehouseCredentials" + }, + "dbtConnection": { + "$ref": "#/components/schemas/DbtProjectConfig" + }, + "type": { + "$ref": "#/components/schemas/ProjectType" + }, "name": { "type": "string" }, "projectUuid": { "type": "string" }, - "uuid": { + "organizationUuid": { "type": "string" } }, "required": [ - "slug", - "access", - "isPrivate", - "colorPalette", - "dashboardName", - "dashboardUuid", - "pinnedListOrder", - "pinnedListUuid", - "spaceName", - "spaceUuid", - "organizationUuid", - "updatedAt", - "tableConfig", - "chartConfig", - "metricQuery", - "tableName", + "createdByUserUuid", + "schedulerTimezone", + "dbtVersion", + "dbtConnection", + "type", "name", "projectUuid", - "uuid" - ], - "type": "object" - }, - "ChartVersion": { - "properties": { - "chart": { - "$ref": "#/components/schemas/SavedChart" - }, - "createdBy": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_LightdashUser.userUuid-or-firstName-or-lastName_" - } - ], - "nullable": true - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "versionUuid": { - "type": "string" - }, - "chartUuid": { - "type": "string" - } - }, - "required": [ - "chart", - "createdBy", - "createdAt", - "versionUuid", - "chartUuid" + "organizationUuid" ], "type": "object" }, - "ApiGetChartVersionResponse": { + "ApiProjectResponse": { "properties": { "results": { - "$ref": "#/components/schemas/ChartVersion" + "$ref": "#/components/schemas/Project" }, "status": { "type": "string", @@ -6322,494 +6231,420 @@ "required": ["results", "status"], "type": "object" }, - "ApiPromoteChartResponse": { + "Pick_SavedChart.uuid-or-name-or-description-or-spaceName-or-spaceUuid-or-projectUuid-or-organizationUuid-or-pinnedListUuid-or-dashboardUuid-or-dashboardName-or-slug_": { "properties": { - "results": { - "$ref": "#/components/schemas/SavedChartDAO" + "name": { + "type": "string" }, - "status": { + "description": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "spaceName": { + "type": "string" + }, + "spaceUuid": { + "type": "string" + }, + "projectUuid": { + "type": "string" + }, + "organizationUuid": { + "type": "string" + }, + "pinnedListUuid": { "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "SchedulerFormat": { - "enum": ["csv", "image", "gsheets"], - "type": "string" + "nullable": true + }, + "dashboardUuid": { + "type": "string", + "nullable": true + }, + "dashboardName": { + "type": "string", + "nullable": true + }, + "slug": { + "type": "string" + } + }, + "required": [ + "name", + "uuid", + "spaceName", + "spaceUuid", + "projectUuid", + "organizationUuid", + "pinnedListUuid", + "dashboardUuid", + "dashboardName", + "slug" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "SchedulerCsvOptions": { - "properties": { - "limit": { - "anyOf": [ - { - "type": "number", - "format": "double" + "ChartSummary": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_SavedChart.uuid-or-name-or-description-or-spaceName-or-spaceUuid-or-projectUuid-or-organizationUuid-or-pinnedListUuid-or-dashboardUuid-or-dashboardName-or-slug_" + }, + { + "properties": { + "source": { + "$ref": "#/components/schemas/ChartSourceType" }, - { - "type": "string", - "enum": ["table", "all"] + "chartKind": { + "$ref": "#/components/schemas/ChartKind" + }, + "chartType": { + "$ref": "#/components/schemas/ChartType" } - ] - }, - "formatted": { - "type": "boolean" + }, + "type": "object" } - }, - "required": ["limit", "formatted"], - "type": "object" + ] }, - "SchedulerImageOptions": { + "Pick_SavedChart.updatedAt-or-updatedByUser-or-pinnedListOrder_": { "properties": { - "withPdf": { - "type": "boolean" + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" + }, + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true } }, - "type": "object" + "required": ["updatedAt", "pinnedListOrder"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "SchedulerGsheetsOptions": { + "ViewStatistics": { "properties": { - "url": { - "type": "string" - }, - "gdriveOrganizationName": { - "type": "string" - }, - "gdriveName": { - "type": "string" + "firstViewedAt": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "string" + } + ], + "nullable": true }, - "gdriveId": { - "type": "string" + "views": { + "type": "number", + "format": "double" } }, - "required": [ - "url", - "gdriveOrganizationName", - "gdriveName", - "gdriveId" - ], + "required": ["firstViewedAt", "views"], "type": "object" }, - "SchedulerOptions": { - "anyOf": [ + "SpaceQuery": { + "allOf": [ { - "$ref": "#/components/schemas/SchedulerCsvOptions" + "$ref": "#/components/schemas/ChartSummary" }, { - "$ref": "#/components/schemas/SchedulerImageOptions" + "$ref": "#/components/schemas/Pick_SavedChart.updatedAt-or-updatedByUser-or-pinnedListOrder_" }, { - "$ref": "#/components/schemas/SchedulerGsheetsOptions" + "$ref": "#/components/schemas/ViewStatistics" + }, + { + "properties": { + "validationErrors": { + "items": { + "$ref": "#/components/schemas/ValidationSummary" + }, + "type": "array" + } + }, + "type": "object" } ] }, - "ThresholdOperator": { - "enum": [ - "greaterThan", - "lessThan", - "increasedBy", - "decreasedBy" - ], - "type": "string" - }, - "ThresholdOptions": { + "ApiChartListResponse": { "properties": { - "value": { - "type": "number", - "format": "double" - }, - "fieldId": { - "type": "string" + "results": { + "items": { + "$ref": "#/components/schemas/SpaceQuery" + }, + "type": "array" }, - "operator": { - "$ref": "#/components/schemas/ThresholdOperator" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } }, - "required": ["value", "fieldId", "operator"], + "required": ["results", "status"], "type": "object" }, - "NotificationFrequency": { - "enum": ["always", "once"], - "type": "string" - }, - "SchedulerBase": { + "ApiChartSummaryListResponse": { "properties": { - "notificationFrequency": { - "$ref": "#/components/schemas/NotificationFrequency" - }, - "enabled": { - "type": "boolean" - }, - "thresholds": { + "results": { "items": { - "$ref": "#/components/schemas/ThresholdOptions" + "$ref": "#/components/schemas/ChartSummary" }, "type": "array" }, - "options": { - "$ref": "#/components/schemas/SchedulerOptions" - }, - "dashboardUuid": { - "type": "string", - "nullable": true - }, - "savedChartUuid": { + "status": { "type": "string", - "nullable": true - }, - "cron": { + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "Pick_Space.organizationUuid-or-projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-slug_": { + "properties": { + "name": { "type": "string" }, - "format": { - "$ref": "#/components/schemas/SchedulerFormat" + "uuid": { + "type": "string" }, - "createdBy": { + "projectUuid": { "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time" + "organizationUuid": { + "type": "string" }, - "createdAt": { + "pinnedListUuid": { "type": "string", - "format": "date-time" + "nullable": true }, - "message": { + "slug": { "type": "string" }, - "name": { - "type": "string" + "isPrivate": { + "type": "boolean" }, - "schedulerUuid": { - "type": "string" + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true } }, "required": [ - "enabled", - "options", - "dashboardUuid", - "savedChartUuid", - "cron", - "format", - "createdBy", - "updatedAt", - "createdAt", "name", - "schedulerUuid" + "uuid", + "projectUuid", + "organizationUuid", + "pinnedListUuid", + "slug", + "isPrivate", + "pinnedListOrder" ], - "type": "object" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "ChartScheduler": { - "allOf": [ - { - "$ref": "#/components/schemas/SchedulerBase" + "SpaceMemberRole": { + "enum": ["viewer", "editor", "admin"], + "type": "string" + }, + "SpaceShare": { + "properties": { + "inheritedFrom": { + "type": "string", + "enum": [ + "organization", + "project", + "group", + "space_group" + ] }, - { - "properties": { - "dashboardUuid": { - "type": "number", - "enum": [null], - "nullable": true + "inheritedRole": { + "anyOf": [ + { + "$ref": "#/components/schemas/OrganizationMemberRole" }, - "savedChartUuid": { - "type": "string" + { + "$ref": "#/components/schemas/ProjectMemberRole" } - }, - "required": ["dashboardUuid", "savedChartUuid"], - "type": "object" - } - ] - }, - "SchedulerFilterRule": { - "allOf": [ - { - "$ref": "#/components/schemas/DashboardFilterRule" + ] }, - { - "properties": { - "tileTargets": {} - }, - "type": "object" + "projectRole": { + "$ref": "#/components/schemas/ProjectMemberRole" + }, + "hasDirectAccess": { + "type": "boolean" + }, + "role": { + "$ref": "#/components/schemas/SpaceMemberRole" + }, + "email": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "firstName": { + "type": "string" + }, + "userUuid": { + "type": "string" } - ] + }, + "required": [ + "hasDirectAccess", + "role", + "email", + "lastName", + "firstName", + "userUuid" + ], + "type": "object" }, - "DashboardScheduler": { + "SpaceSummary": { "allOf": [ { - "$ref": "#/components/schemas/SchedulerBase" + "$ref": "#/components/schemas/Pick_Space.organizationUuid-or-projectUuid-or-uuid-or-name-or-isPrivate-or-pinnedListUuid-or-pinnedListOrder-or-slug_" }, { "properties": { - "selectedTabs": { - "items": { - "type": "string" - }, - "type": "array" + "dashboardCount": { + "type": "number", + "format": "double" }, - "customViewportWidth": { + "chartCount": { "type": "number", "format": "double" }, - "filters": { + "access": { "items": { - "$ref": "#/components/schemas/SchedulerFilterRule" + "type": "string" }, "type": "array" }, - "dashboardUuid": { - "type": "string" - }, - "savedChartUuid": { - "type": "number", - "enum": [null], - "nullable": true + "userAccess": { + "$ref": "#/components/schemas/SpaceShare" } }, - "required": ["dashboardUuid", "savedChartUuid"], + "required": ["dashboardCount", "chartCount", "access"], "type": "object" } ] }, - "Scheduler": { - "anyOf": [ - { - "$ref": "#/components/schemas/ChartScheduler" + "ApiSpaceSummaryListResponse": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/SpaceSummary" + }, + "type": "array" }, - { - "$ref": "#/components/schemas/DashboardScheduler" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } - ] + }, + "required": ["results", "status"], + "type": "object" }, - "SchedulerSlackTarget": { + "ProjectMemberProfile": { "properties": { - "channel": { + "lastName": { "type": "string" }, - "schedulerUuid": { + "firstName": { "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time" + "email": { + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time" + "role": { + "$ref": "#/components/schemas/ProjectMemberRole" }, - "schedulerSlackTargetUuid": { + "projectUuid": { + "type": "string" + }, + "userUuid": { "type": "string" } }, "required": [ - "channel", - "schedulerUuid", - "updatedAt", - "createdAt", - "schedulerSlackTargetUuid" + "lastName", + "firstName", + "email", + "role", + "projectUuid", + "userUuid" ], "type": "object" }, - "SchedulerEmailTarget": { + "ApiProjectAccessListResponse": { "properties": { - "recipient": { - "type": "string" - }, - "schedulerUuid": { - "type": "string" - }, - "updatedAt": { - "type": "string", - "format": "date-time" + "results": { + "items": { + "$ref": "#/components/schemas/ProjectMemberProfile" + }, + "type": "array" }, - "createdAt": { + "status": { "type": "string", - "format": "date-time" - }, - "schedulerEmailTargetUuid": { - "type": "string" + "enum": ["ok"], + "nullable": false } }, - "required": [ - "recipient", - "schedulerUuid", - "updatedAt", - "createdAt", - "schedulerEmailTargetUuid" - ], + "required": ["results", "status"], "type": "object" }, - "SchedulerAndTargets": { - "allOf": [ - { - "$ref": "#/components/schemas/Scheduler" + "ApiGetProjectMemberResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/ProjectMemberProfile" }, - { - "properties": { - "targets": { - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SchedulerSlackTarget" - }, - { - "$ref": "#/components/schemas/SchedulerEmailTarget" - } - ] - }, - "type": "array" - } - }, - "required": ["targets"], - "type": "object" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } - ] - }, - "SchedulerJobStatus": { - "enum": ["scheduled", "started", "completed", "error"], - "type": "string" - }, - "Record_string.any_": { - "properties": {}, - "type": "object", - "description": "Construct a type with a set of properties K of type T" + }, + "required": ["results", "status"], + "type": "object" }, - "SchedulerLog": { + "CreateProjectMember": { "properties": { - "details": { - "$ref": "#/components/schemas/Record_string.any_" + "sendEmail": { + "type": "boolean" }, - "targetType": { - "type": "string", - "enum": ["email", "slack", "gsheets"] + "role": { + "$ref": "#/components/schemas/ProjectMemberRole" }, - "target": { + "email": { "type": "string" - }, - "status": { - "$ref": "#/components/schemas/SchedulerJobStatus" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "scheduledTime": { - "type": "string", - "format": "date-time" - }, - "jobGroup": { - "type": "string" - }, - "jobId": { - "type": "string" - }, - "schedulerUuid": { - "type": "string" - }, - "task": { - "type": "string", - "enum": [ - "handleScheduledDelivery", - "sendEmailNotification", - "sendSlackNotification", - "uploadGsheets", - "downloadCsv", - "uploadGsheetFromQuery", - "compileProject", - "testAndCompileProject", - "validateProject", - "sqlRunner", - "sqlRunnerPivotQuery", - "semanticLayer" - ] } }, - "required": [ - "status", - "createdAt", - "scheduledTime", - "jobId", - "task" - ], + "required": ["sendEmail", "role", "email"], "type": "object" }, - "SchedulerWithLogs": { + "UpdateProjectMember": { "properties": { - "logs": { - "items": { - "$ref": "#/components/schemas/SchedulerLog" - }, - "type": "array" - }, - "dashboards": { - "items": { - "properties": { - "dashboardUuid": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": ["dashboardUuid", "name"], - "type": "object" - }, - "type": "array" - }, - "charts": { - "items": { - "properties": { - "savedChartUuid": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": ["savedChartUuid", "name"], - "type": "object" - }, - "type": "array" - }, - "users": { - "items": { - "properties": { - "userUuid": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "firstName": { - "type": "string" - } - }, - "required": ["userUuid", "lastName", "firstName"], - "type": "object" - }, - "type": "array" - }, - "schedulers": { - "items": { - "$ref": "#/components/schemas/SchedulerAndTargets" - }, - "type": "array" + "role": { + "$ref": "#/components/schemas/ProjectMemberRole" } }, - "required": [ - "logs", - "dashboards", - "charts", - "users", - "schedulers" - ], + "required": ["role"], "type": "object" }, - "ApiSchedulerLogsResponse": { + "ApiGetProjectGroupAccesses": { "properties": { "results": { - "$ref": "#/components/schemas/SchedulerWithLogs" + "items": { + "$ref": "#/components/schemas/ProjectGroupAccess" + }, + "type": "array" }, "status": { "type": "string", @@ -6820,68 +6655,40 @@ "required": ["results", "status"], "type": "object" }, - "ApiSchedulerAndTargetsResponse": { - "properties": { - "results": { - "$ref": "#/components/schemas/SchedulerAndTargets" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "Record_string._type-DimensionType--__": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" }, - "ScheduledJobs": { - "properties": { - "id": { - "type": "string" - }, - "date": { - "type": "string", - "format": "date-time" - } - }, - "required": ["id", "date"], - "type": "object" + "Record_string.unknown_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" }, - "ApiScheduledJobsResponse": { + "ApiSqlQueryResults": { "properties": { - "results": { + "rows": { "items": { - "$ref": "#/components/schemas/ScheduledJobs" + "$ref": "#/components/schemas/Record_string.unknown_" }, "type": "array" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false + "fields": { + "$ref": "#/components/schemas/Record_string._type-DimensionType--__" } }, - "required": ["results", "status"], + "required": ["rows", "fields"], "type": "object" }, - "ApiJobStatusResponse": { + "Record_string.number_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "ApiCalculateTotalResponse": { "properties": { "results": { - "properties": { - "details": { - "allOf": [ - { - "$ref": "#/components/schemas/Record_string.any_" - } - ], - "nullable": true - }, - "status": { - "$ref": "#/components/schemas/SchedulerJobStatus" - } - }, - "required": ["details", "status"], - "type": "object" + "$ref": "#/components/schemas/Record_string.number_" }, "status": { "type": "string", @@ -6892,165 +6699,264 @@ "required": ["results", "status"], "type": "object" }, - "ApiTestSchedulerResponse": { + "DateGranularity": { + "enum": ["Day", "Week", "Month", "Quarter", "Year"], + "type": "string" + }, + "MetricQueryRequest": { "properties": { - "results": { + "timezone": { + "type": "string" + }, + "metadata": { "properties": { - "jobId": { - "type": "string" + "hasADateDimension": { + "$ref": "#/components/schemas/Pick_CompiledDimension.label-or-name_" } }, - "required": ["jobId"], + "required": ["hasADateDimension"], "type": "object" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "ShareUrl": { - "properties": { - "host": { - "type": "string" + "granularity": { + "$ref": "#/components/schemas/DateGranularity" }, - "url": { - "type": "string" + "customDimensions": { + "items": { + "$ref": "#/components/schemas/CustomDimension" + }, + "type": "array" }, - "shareUrl": { - "type": "string" + "csvLimit": { + "type": "number", + "format": "double" }, - "organizationUuid": { - "type": "string", - "format": "uuid" + "additionalMetrics": { + "items": { + "$ref": "#/components/schemas/AdditionalMetric" + }, + "type": "array" }, - "createdByUserUuid": { - "type": "string", - "format": "uuid" + "tableCalculations": { + "items": { + "$ref": "#/components/schemas/TableCalculation" + }, + "type": "array" }, - "params": { - "type": "string" + "limit": { + "type": "number", + "format": "double" }, - "path": { - "type": "string", - "description": "The URL path of the full URL" + "sorts": { + "items": { + "$ref": "#/components/schemas/SortField" + }, + "type": "array" }, - "nanoid": { - "type": "string", - "description": "Unique shareable id" + "filters": { + "properties": { + "tableCalculations": {}, + "metrics": {}, + "dimensions": {} + }, + "type": "object" + }, + "metrics": { + "items": { + "$ref": "#/components/schemas/FieldId" + }, + "type": "array" + }, + "dimensions": { + "items": { + "$ref": "#/components/schemas/FieldId" + }, + "type": "array" + }, + "exploreName": { + "type": "string" } }, - "required": ["params", "path", "nanoid"], - "type": "object", - "description": "A ShareUrl maps a short shareable id to a full URL\nin the Lightdash UI. This allows very long URLs\nto be represented by short ids." + "required": [ + "tableCalculations", + "limit", + "sorts", + "filters", + "metrics", + "dimensions", + "exploreName" + ], + "type": "object" }, - "ApiShareResponse": { + "CalculateTotalFromQuery": { "properties": { - "results": { - "$ref": "#/components/schemas/ShareUrl" + "explore": { + "type": "string" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false + "metricQuery": { + "$ref": "#/components/schemas/MetricQueryRequest" } }, - "required": ["results", "status"], + "required": ["explore", "metricQuery"], "type": "object" }, - "Pick_ShareUrl.path-or-params_": { + "Record_string.DbtExposure_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "Pick_CreateRedshiftCredentials-or-CreatePostgresCredentials-or-CreateSnowflakeCredentials-or-CreateTrinoCredentials.type-or-user_": { "properties": { - "path": { - "type": "string", - "description": "The URL path of the full URL" + "type": { + "$ref": "#/components/schemas/WarehouseTypes.SNOWFLAKE" }, - "params": { + "user": { "type": "string" } }, - "required": ["path", "params"], + "required": ["type", "user"], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "CreateShareUrl": { - "$ref": "#/components/schemas/Pick_ShareUrl.path-or-params_", - "description": "Contains the detail of a full URL to generate a short URL id" + "Pick_CreateBigqueryCredentials.type_": { + "properties": { + "type": { + "$ref": "#/components/schemas/WarehouseTypes.BIGQUERY" + } + }, + "required": ["type"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "SlackChannel": { + "Pick_CreateDatabricksCredentials.type_": { "properties": { - "name": { - "type": "string" - }, - "id": { - "type": "string" + "type": { + "$ref": "#/components/schemas/WarehouseTypes.DATABRICKS" } }, - "required": ["name", "id"], - "type": "object" + "required": ["type"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "ApiSlackChannelsResponse": { + "UserWarehouseCredentials": { "properties": { - "results": { - "items": { - "$ref": "#/components/schemas/SlackChannel" - }, - "type": "array" + "credentials": { + "anyOf": [ + { + "$ref": "#/components/schemas/Pick_CreateRedshiftCredentials-or-CreatePostgresCredentials-or-CreateSnowflakeCredentials-or-CreateTrinoCredentials.type-or-user_" + }, + { + "$ref": "#/components/schemas/Pick_CreateBigqueryCredentials.type_" + }, + { + "$ref": "#/components/schemas/Pick_CreateDatabricksCredentials.type_" + } + ] }, - "status": { + "updatedAt": { "type": "string", - "enum": ["ok"], - "nullable": false + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "name": { + "type": "string" + }, + "userUuid": { + "type": "string" + }, + "uuid": { + "type": "string" } }, - "required": ["status"], + "required": [ + "credentials", + "updatedAt", + "createdAt", + "name", + "userUuid", + "uuid" + ], "type": "object" }, - "ApiSlackCustomSettingsResponse": { + "UpdateMetadata": { "properties": { - "results": {}, - "status": { + "upstreamProjectUuid": { "type": "string", - "enum": ["ok"], - "nullable": false + "nullable": true } }, - "required": ["results", "status"], "type": "object" }, - "SlackChannelProjectMapping": { + "Partial_DbtSemanticLayerConnection_": { "properties": { - "slackChannelId": { + "type": { + "$ref": "#/components/schemas/SemanticLayerType.DBT" + }, + "environmentId": { "type": "string" }, - "projectUuid": { + "domain": { + "type": "string" + }, + "token": { "type": "string" } }, - "required": ["slackChannelId", "projectUuid"], - "type": "object" + "type": "object", + "description": "Make all properties in T optional" }, - "SlackAppCustomSettings": { + "Partial_CubeSemanticLayerConnection_": { "properties": { - "slackChannelProjectMappings": { - "items": { - "$ref": "#/components/schemas/SlackChannelProjectMapping" - }, - "type": "array" + "type": { + "$ref": "#/components/schemas/SemanticLayerType.CUBE" }, - "appProfilePhotoUrl": { - "type": "string", - "nullable": true + "domain": { + "type": "string" }, - "notificationChannel": { - "type": "string", - "nullable": true + "token": { + "type": "string" } }, - "required": ["appProfilePhotoUrl", "notificationChannel"], - "type": "object" + "type": "object", + "description": "Make all properties in T optional" + }, + "SemanticLayerConnectionUpdate": { + "anyOf": [ + { + "allOf": [ + { + "$ref": "#/components/schemas/Partial_DbtSemanticLayerConnection_" + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/SemanticLayerType.DBT" + } + }, + "required": ["type"], + "type": "object" + } + ] + }, + { + "allOf": [ + { + "$ref": "#/components/schemas/Partial_CubeSemanticLayerConnection_" + }, + { + "properties": { + "type": { + "$ref": "#/components/schemas/SemanticLayerType.CUBE" + } + }, + "required": ["type"], + "type": "object" + } + ] + } + ] }, "Pick_Dashboard.uuid-or-name-or-description-or-updatedAt-or-projectUuid-or-updatedByUser-or-organizationUuid-or-spaceUuid-or-views-or-firstViewedAt-or-pinnedListUuid-or-pinnedListOrder_": { "properties": { @@ -7138,67 +7044,113 @@ } ] }, - "SpaceDashboard": { - "$ref": "#/components/schemas/DashboardBasicDetails" + "DashboardBasicDetailsWithTileTypes": { + "allOf": [ + { + "$ref": "#/components/schemas/DashboardBasicDetails" + }, + { + "properties": { + "tileTypes": { + "items": { + "$ref": "#/components/schemas/DashboardTileTypes" + }, + "type": "array" + } + }, + "required": ["tileTypes"], + "type": "object" + } + ] }, - "SpaceGroup": { + "ApiGetDashboardsResponse": { "properties": { - "spaceRole": { - "$ref": "#/components/schemas/SpaceMemberRole" - }, - "groupName": { - "type": "string" + "results": { + "items": { + "$ref": "#/components/schemas/DashboardBasicDetailsWithTileTypes" + }, + "type": "array" }, - "groupUuid": { - "type": "string" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } }, - "required": ["spaceRole", "groupName", "groupUuid"], + "required": ["results", "status"], "type": "object" }, - "Space": { + "Dashboard": { "properties": { "slug": { "type": "string" }, - "pinnedListOrder": { - "type": "number", - "format": "double", + "access": { + "items": { + "$ref": "#/components/schemas/SpaceShare" + }, + "type": "array", "nullable": true }, - "pinnedListUuid": { - "type": "string", + "isPrivate": { + "type": "boolean", "nullable": true }, - "groupsAccess": { + "tabs": { "items": { - "$ref": "#/components/schemas/SpaceGroup" + "$ref": "#/components/schemas/DashboardTab" }, "type": "array" }, - "access": { - "items": { - "$ref": "#/components/schemas/SpaceShare" - }, - "type": "array" + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true }, - "dashboards": { - "items": { - "$ref": "#/components/schemas/SpaceDashboard" - }, - "type": "array" + "pinnedListUuid": { + "type": "string", + "nullable": true }, - "projectUuid": { + "firstViewedAt": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "string" + } + ], + "nullable": true + }, + "views": { + "type": "number", + "format": "double" + }, + "spaceName": { "type": "string" }, - "queries": { + "spaceUuid": { + "type": "string" + }, + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" + }, + "filters": { + "$ref": "#/components/schemas/DashboardFilters" + }, + "tiles": { "items": { - "$ref": "#/components/schemas/SpaceQuery" + "$ref": "#/components/schemas/DashboardTile" }, "type": "array" }, - "isPrivate": { - "type": "boolean" + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "description": { + "type": "string" }, "name": { "type": "string" @@ -7206,30 +7158,43 @@ "uuid": { "type": "string" }, + "dashboardVersionId": { + "type": "number", + "format": "double" + }, + "projectUuid": { + "type": "string" + }, "organizationUuid": { "type": "string" } }, "required": [ "slug", - "pinnedListOrder", - "pinnedListUuid", - "groupsAccess", "access", - "dashboards", - "projectUuid", - "queries", "isPrivate", + "tabs", + "pinnedListOrder", + "pinnedListUuid", + "firstViewedAt", + "views", + "spaceName", + "spaceUuid", + "filters", + "tiles", + "updatedAt", "name", "uuid", + "dashboardVersionId", + "projectUuid", "organizationUuid" ], "type": "object" }, - "ApiSpaceResponse": { + "ApiCreateDashboardResponse": { "properties": { "results": { - "$ref": "#/components/schemas/Space" + "$ref": "#/components/schemas/Dashboard" }, "status": { "type": "string", @@ -7240,113 +7205,165 @@ "required": ["results", "status"], "type": "object" }, - "Pick_SpaceShare.userUuid-or-role_": { + "DuplicateDashboardParams": { "properties": { - "userUuid": { + "dashboardDesc": { "type": "string" }, - "role": { - "$ref": "#/components/schemas/SpaceMemberRole" + "dashboardName": { + "type": "string" } }, - "required": ["userUuid", "role"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "required": ["dashboardDesc", "dashboardName"], + "type": "object" }, - "CreateSpace": { + "CreateDashboardTileBase": { "properties": { - "access": { - "items": { - "$ref": "#/components/schemas/Pick_SpaceShare.userUuid-or-role_" - }, - "type": "array" + "tabUuid": { + "type": "string" }, - "isPrivate": { - "type": "boolean" + "w": { + "type": "number", + "format": "double" }, - "name": { + "h": { + "type": "number", + "format": "double" + }, + "y": { + "type": "number", + "format": "double" + }, + "x": { + "type": "number", + "format": "double" + }, + "type": { + "$ref": "#/components/schemas/DashboardTileTypes" + }, + "uuid": { "type": "string" } }, - "required": ["name"], + "required": ["w", "h", "y", "x", "type"], "type": "object" }, - "UpdateSpace": { - "properties": { - "isPrivate": { - "type": "boolean" + "CreateDashboardChartTile": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateDashboardTileBase" }, - "name": { - "type": "string" + { + "$ref": "#/components/schemas/DashboardChartTileProperties" } - }, - "required": ["isPrivate", "name"], - "type": "object" + ] }, - "AddSpaceUserAccess": { - "properties": { - "spaceRole": { - "$ref": "#/components/schemas/SpaceMemberRole" + "CreateDashboardMarkdownTile": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateDashboardTileBase" }, - "userUuid": { - "type": "string" + { + "$ref": "#/components/schemas/DashboardMarkdownTileProperties" } - }, - "required": ["spaceRole", "userUuid"], - "type": "object" + ] }, - "AddSpaceGroupAccess": { - "properties": { - "spaceRole": { - "$ref": "#/components/schemas/SpaceMemberRole" + "CreateDashboardLoomTile": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateDashboardTileBase" }, - "groupUuid": { - "type": "string" + { + "$ref": "#/components/schemas/DashboardLoomTileProperties" } - }, - "required": ["spaceRole", "groupUuid"], - "type": "object" + ] }, - "PartitionType": { - "enum": ["DATE", "RANGE"], - "type": "string" + "CreateDashboardSqlChartTile": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateDashboardTileBase" + }, + { + "$ref": "#/components/schemas/DashboardSqlChartTileProperties" + } + ] }, - "PartitionColumn": { + "CreateDashboardSemanticViewerChartTile": { + "allOf": [ + { + "$ref": "#/components/schemas/CreateDashboardTileBase" + }, + { + "$ref": "#/components/schemas/DashboardSemanticViewerChartTileProperties" + } + ] + }, + "Pick_UpdatedByUser.userUuid_": { "properties": { - "field": { + "userUuid": { "type": "string" - }, - "partitionType": { - "$ref": "#/components/schemas/PartitionType" } }, - "required": ["field", "partitionType"], - "type": "object" + "required": ["userUuid"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "WarehouseTablesCatalog": { - "properties": {}, - "additionalProperties": { - "properties": {}, - "additionalProperties": { - "properties": {}, - "additionalProperties": { - "properties": { - "partitionColumn": { - "$ref": "#/components/schemas/PartitionColumn" + "CreateDashboard": { + "properties": { + "tabs": { + "items": { + "$ref": "#/components/schemas/DashboardTab" + }, + "type": "array" + }, + "spaceUuid": { + "type": "string" + }, + "updatedByUser": { + "$ref": "#/components/schemas/Pick_UpdatedByUser.userUuid_" + }, + "filters": { + "$ref": "#/components/schemas/DashboardFilters" + }, + "tiles": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/CreateDashboardChartTile" + }, + { + "$ref": "#/components/schemas/CreateDashboardMarkdownTile" + }, + { + "$ref": "#/components/schemas/CreateDashboardLoomTile" + }, + { + "$ref": "#/components/schemas/CreateDashboardSqlChartTile" + }, + { + "$ref": "#/components/schemas/CreateDashboardSemanticViewerChartTile" } - }, - "type": "object" + ] }, - "type": "object" + "type": "array" }, - "type": "object" + "description": { + "type": "string" + }, + "name": { + "type": "string" + } }, + "required": ["tabs", "tiles", "name"], "type": "object" }, - "ApiWarehouseTablesCatalog": { + "ApiUpdateDashboardsResponse": { "properties": { "results": { - "$ref": "#/components/schemas/WarehouseTablesCatalog" + "items": { + "$ref": "#/components/schemas/Dashboard" + }, + "type": "array" }, "status": { "type": "string", @@ -7357,17 +7374,47 @@ "required": ["results", "status"], "type": "object" }, - "WarehouseTableSchema": { - "properties": {}, - "additionalProperties": { - "$ref": "#/components/schemas/DimensionType" - }, - "type": "object" - }, - "ApiWarehouseTableFields": { + "Pick_Dashboard.uuid-or-name-or-description-or-spaceUuid_": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "spaceUuid": { + "type": "string" + } + }, + "required": ["name", "uuid", "spaceUuid"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "UpdateMultipleDashboards": { + "$ref": "#/components/schemas/Pick_Dashboard.uuid-or-name-or-description-or-spaceUuid_" + }, + "UpdateSchedulerSettings": { + "properties": { + "schedulerTimezone": { + "type": "string" + } + }, + "required": ["schedulerTimezone"], + "type": "object" + }, + "ApiCreateTagResponse": { "properties": { "results": { - "$ref": "#/components/schemas/WarehouseTableSchema" + "properties": { + "tagUuid": { + "type": "string" + } + }, + "required": ["tagUuid"], + "type": "object" }, "status": { "type": "string", @@ -7378,593 +7425,513 @@ "required": ["results", "status"], "type": "object" }, - "SqlRunnerBody": { + "Pick_Tag.name-or-color_": { "properties": { - "uuid": { + "name": { "type": "string" }, - "slug": { + "color": { + "type": "string" + } + }, + "required": ["name", "color"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Partial_Pick_DbTag.name-or-color__": { + "properties": { + "name": { "type": "string" }, - "limit": { - "type": "number", - "format": "double" - }, - "sql": { + "color": { "type": "string" } }, - "required": ["sql"], - "type": "object" + "type": "object", + "description": "Make all properties in T optional" }, - "VizIndexType": { - "enum": ["time", "category"], - "type": "string" + "DbTagUpdate": { + "$ref": "#/components/schemas/Partial_Pick_DbTag.name-or-color__" }, - "PivotIndexColum": { + "Pick_LightdashUser.userUuid-or-firstName-or-lastName_": { "properties": { - "type": { - "$ref": "#/components/schemas/VizIndexType" + "userUuid": { + "type": "string" }, - "reference": { + "firstName": { + "type": "string" + }, + "lastName": { "type": "string" } }, - "required": ["type", "reference"], - "type": "object" - }, - "VizAggregationOptions": { - "enum": ["sum", "count", "avg", "min", "max", "any"], - "type": "string" - }, - "SortByDirection": { - "enum": ["ASC", "DESC"], - "type": "string" + "required": ["userUuid", "firstName", "lastName"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "VizSortBy": { + "Tag": { "properties": { - "direction": { - "$ref": "#/components/schemas/SortByDirection" + "createdBy": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_LightdashUser.userUuid-or-firstName-or-lastName_" + } + ], + "nullable": true }, - "reference": { + "createdAt": { + "type": "string", + "format": "date-time" + }, + "color": { + "type": "string" + }, + "name": { + "type": "string" + }, + "projectUuid": { + "type": "string" + }, + "tagUuid": { "type": "string" } }, - "required": ["direction", "reference"], + "required": [ + "createdBy", + "createdAt", + "color", + "name", + "projectUuid", + "tagUuid" + ], "type": "object" }, - "ApiSqlRunnerPivotQueryPayload": { + "ApiGetTagsResponse": { "properties": { - "sortBy": { + "results": { "items": { - "$ref": "#/components/schemas/VizSortBy" + "$ref": "#/components/schemas/Tag" }, "type": "array" }, - "groupByColumns": { - "items": { - "properties": { - "reference": { - "type": "string" - } - }, - "required": ["reference"], - "type": "object" - }, - "type": "array" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "Pick_SavedChart.name-or-description-or-tableName-or-metricQuery-or-chartConfig-or-tableConfig-or-slug-or-dashboardUuid-or-updatedAt_": { + "properties": { + "name": { + "type": "string" }, - "valuesColumns": { - "items": { - "properties": { - "aggregation": { - "$ref": "#/components/schemas/VizAggregationOptions" - }, - "reference": { + "description": { + "type": "string" + }, + "dashboardUuid": { + "type": "string", + "nullable": true + }, + "slug": { + "type": "string" + }, + "tableName": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "metricQuery": { + "$ref": "#/components/schemas/MetricQuery" + }, + "chartConfig": { + "$ref": "#/components/schemas/ChartConfig" + }, + "tableConfig": { + "properties": { + "columnOrder": { + "items": { "type": "string" - } - }, - "required": ["aggregation", "reference"], - "type": "object" + }, + "type": "array" + } }, - "type": "array" - }, - "indexColumn": { - "$ref": "#/components/schemas/PivotIndexColum" + "required": ["columnOrder"], + "type": "object" } }, - "required": ["valuesColumns", "indexColumn"], - "type": "object" + "required": [ + "name", + "dashboardUuid", + "slug", + "tableName", + "updatedAt", + "metricQuery", + "chartConfig", + "tableConfig" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "SqlRunnerPivotQueryBody": { + "ChartAsCode": { "allOf": [ { - "$ref": "#/components/schemas/SqlRunnerBody" + "$ref": "#/components/schemas/Pick_SavedChart.name-or-description-or-tableName-or-metricQuery-or-chartConfig-or-tableConfig-or-slug-or-dashboardUuid-or-updatedAt_" }, { - "$ref": "#/components/schemas/ApiSqlRunnerPivotQueryPayload" - } - ] - }, - "VizBaseConfig": { - "properties": { - "type": { - "$ref": "#/components/schemas/ChartKind" - }, - "metadata": { "properties": { + "downloadedAt": { + "type": "string", + "format": "date-time" + }, + "spaceSlug": { + "type": "string" + }, "version": { "type": "number", "format": "double" } }, - "required": ["version"], + "required": ["spaceSlug", "version"], "type": "object" } - }, - "required": ["type", "metadata"], - "type": "object" - }, - "ChartKind.VERTICAL_BAR": { - "enum": ["vertical_bar"], - "type": "string" - }, - "ChartKind.LINE": { - "enum": ["line"], - "type": "string" + ] }, - "VizChartLayout": { + "ApiChartAsCodeListResponse": { "properties": { - "sortBy": { + "results": { "items": { - "$ref": "#/components/schemas/VizSortBy" + "$ref": "#/components/schemas/ChartAsCode" }, "type": "array" }, - "groupBy": { - "items": { - "properties": { - "reference": { - "type": "string" - } - }, - "required": ["reference"], - "type": "object" - }, - "type": "array" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "Pick_Dashboard.name-or-description-or-updatedAt-or-filters-or-tabs-or-slug_": { + "properties": { + "name": { + "type": "string" }, - "y": { + "description": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "filters": { + "$ref": "#/components/schemas/DashboardFilters" + }, + "tabs": { "items": { - "properties": { - "aggregation": { - "$ref": "#/components/schemas/VizAggregationOptions" - }, - "reference": { - "type": "string" - } - }, - "required": ["reference"], - "type": "object" + "$ref": "#/components/schemas/DashboardTab" }, "type": "array" - }, - "x": { - "properties": { - "type": { - "$ref": "#/components/schemas/VizIndexType" - }, - "reference": { - "type": "string" - } - }, - "required": ["type", "reference"], - "type": "object" } }, - "required": ["y"], - "type": "object" + "required": ["name", "slug", "updatedAt", "filters", "tabs"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "CartesianChartDisplay": { + "Pick_DashboardTile.Exclude_keyofDashboardTile.properties__": { "properties": { - "stack": { - "type": "boolean" + "type": { + "$ref": "#/components/schemas/DashboardTileTypes" }, - "legend": { - "properties": { - "align": { - "type": "string", - "enum": ["start", "center", "end"] - }, - "position": { - "type": "string", - "enum": ["top", "bottom", "left", "right"] - } - }, - "required": ["align", "position"], - "type": "object" + "uuid": { + "type": "string" }, - "series": { - "properties": {}, - "additionalProperties": { - "properties": { - "type": { - "anyOf": [ - { - "$ref": "#/components/schemas/ChartKind.LINE" - }, - { - "$ref": "#/components/schemas/ChartKind.VERTICAL_BAR" - } - ] - }, - "color": { - "type": "string" - }, - "yAxisIndex": { - "type": "number", - "format": "double" - }, - "format": { - "$ref": "#/components/schemas/Format" - }, - "label": { - "type": "string" - } - }, - "type": "object" - }, - "type": "object" + "x": { + "type": "number", + "format": "double" }, - "yAxis": { - "items": { - "properties": { - "format": { - "$ref": "#/components/schemas/Format" - }, - "position": { - "type": "string" - }, - "label": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" + "y": { + "type": "number", + "format": "double" }, - "xAxis": { - "properties": { - "type": { - "$ref": "#/components/schemas/VizIndexType" - }, - "label": { - "type": "string" - } - }, - "type": "object" + "h": { + "type": "number", + "format": "double" + }, + "w": { + "type": "number", + "format": "double" + }, + "tabUuid": { + "type": "string" } }, - "type": "object" + "required": ["type", "x", "y", "h", "w"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "VizCartesianChartConfig": { + "Omit_DashboardTile.properties_": { + "$ref": "#/components/schemas/Pick_DashboardTile.Exclude_keyofDashboardTile.properties__", + "description": "Construct a type with the properties of T except for those in type K." + }, + "Pick_DashboardTile-at-properties.Exclude_keyofDashboardTile-at-properties.savedChartUuid-or-savedSqlUuid-or-savedSemanticViewerChartUuid__": { + "properties": { + "title": { + "type": "string" + } + }, + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Omit_DashboardTile-at-properties.savedChartUuid-or-savedSqlUuid-or-savedSemanticViewerChartUuid_": { + "$ref": "#/components/schemas/Pick_DashboardTile-at-properties.Exclude_keyofDashboardTile-at-properties.savedChartUuid-or-savedSqlUuid-or-savedSemanticViewerChartUuid__", + "description": "Construct a type with the properties of T except for those in type K." + }, + "DashboardTileWithoutUuids": { "allOf": [ { - "$ref": "#/components/schemas/VizBaseConfig" + "$ref": "#/components/schemas/Omit_DashboardTile.properties_" }, { "properties": { - "display": { - "$ref": "#/components/schemas/CartesianChartDisplay" - }, - "fieldConfig": { - "$ref": "#/components/schemas/VizChartLayout" - }, - "type": { - "anyOf": [ - { - "$ref": "#/components/schemas/ChartKind.VERTICAL_BAR" - }, - { - "$ref": "#/components/schemas/ChartKind.LINE" - } - ] + "properties": { + "$ref": "#/components/schemas/Omit_DashboardTile-at-properties.savedChartUuid-or-savedSqlUuid-or-savedSemanticViewerChartUuid_" } }, - "required": ["type"], + "required": ["properties"], "type": "object" } ] }, - "ChartKind.PIE": { - "enum": ["pie"], - "type": "string" - }, - "VizPieChartDisplay": { - "properties": { - "isDonut": { - "type": "boolean" - } - }, - "type": "object" - }, - "VizPieChartConfig": { + "DashboardAsCode": { "allOf": [ { - "$ref": "#/components/schemas/VizBaseConfig" + "$ref": "#/components/schemas/Pick_Dashboard.name-or-description-or-updatedAt-or-filters-or-tabs-or-slug_" }, { "properties": { - "display": { - "$ref": "#/components/schemas/VizPieChartDisplay" + "downloadedAt": { + "type": "string", + "format": "date-time" }, - "fieldConfig": { - "$ref": "#/components/schemas/VizChartLayout" + "spaceSlug": { + "type": "string" }, - "type": { - "$ref": "#/components/schemas/ChartKind.PIE" + "version": { + "type": "number", + "format": "double" + }, + "tiles": { + "items": { + "$ref": "#/components/schemas/DashboardTileWithoutUuids" + }, + "type": "array" } }, - "required": ["type"], + "required": ["spaceSlug", "version", "tiles"], "type": "object" } ] }, - "ChartKind.TABLE": { - "enum": ["table"], - "type": "string" - }, - "VizColumnConfig": { + "ApiDashboardAsCodeListResponse": { "properties": { - "aggregation": { - "$ref": "#/components/schemas/VizAggregationOptions" - }, - "order": { - "type": "number", - "format": "double" - }, - "frozen": { - "type": "boolean" - }, - "label": { - "type": "string" - }, - "reference": { - "type": "string" + "results": { + "items": { + "$ref": "#/components/schemas/DashboardAsCode" + }, + "type": "array" }, - "visible": { - "type": "boolean" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } }, - "required": ["frozen", "label", "reference", "visible"], + "required": ["results", "status"], "type": "object" }, - "VizColumnsConfig": { - "properties": {}, - "additionalProperties": { - "$ref": "#/components/schemas/VizColumnConfig" + "ApiChartAsCodeUpsertResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/PromotionChanges" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } }, + "required": ["results", "status"], "type": "object" }, - "VizTableConfig": { - "allOf": [ - { - "$ref": "#/components/schemas/VizBaseConfig" + "Pick_ChartAsCode.Exclude_keyofChartAsCode.metricQuery-or-chartConfig__": { + "properties": { + "name": { + "type": "string" }, - { - "properties": { - "columns": { - "$ref": "#/components/schemas/VizColumnsConfig" - }, - "type": { - "$ref": "#/components/schemas/ChartKind.TABLE" - } - }, - "required": ["columns", "type"], - "type": "object" - } - ] - }, - "Pick_SpaceSummary.uuid-or-name-or-isPrivate-or-userAccess_": { - "properties": { - "name": { + "description": { "type": "string" }, - "uuid": { - "type": "string" + "dashboardUuid": { + "type": "string", + "nullable": true }, - "isPrivate": { - "type": "boolean" + "slug": { + "type": "string" }, - "userAccess": { - "$ref": "#/components/schemas/SpaceShare" - } - }, - "required": ["name", "uuid", "isPrivate"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Pick_Dashboard.uuid-or-name_": { - "properties": { - "name": { + "tableName": { "type": "string" }, - "uuid": { + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "tableConfig": { + "properties": { + "columnOrder": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": ["columnOrder"], + "type": "object" + }, + "version": { + "type": "number", + "format": "double" + }, + "spaceSlug": { "type": "string" + }, + "downloadedAt": { + "type": "string", + "format": "date-time" } }, - "required": ["name", "uuid"], + "required": [ + "name", + "dashboardUuid", + "slug", + "tableName", + "updatedAt", + "tableConfig", + "version", + "spaceSlug" + ], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "Pick_Project.projectUuid_": { - "properties": { - "projectUuid": { - "type": "string" - } - }, - "required": ["projectUuid"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "Omit_ChartAsCode.metricQuery-or-chartConfig_": { + "$ref": "#/components/schemas/Pick_ChartAsCode.Exclude_keyofChartAsCode.metricQuery-or-chartConfig__", + "description": "Construct a type with the properties of T except for those in type K." }, - "Pick_Organization.organizationUuid_": { + "ApiDashboardAsCodeUpsertResponse": { "properties": { - "organizationUuid": { + "results": { + "$ref": "#/components/schemas/PromotionChanges" + }, + "status": { "type": "string", - "description": "The unique identifier of the organization", - "format": "uuid" + "enum": ["ok"], + "nullable": false } }, - "required": ["organizationUuid"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "required": ["results", "status"], + "type": "object" }, - "SqlChart": { + "Pick_DashboardAsCode.Exclude_keyofDashboardAsCode.filters-or-tiles-or-description__": { "properties": { - "lastViewedAt": { - "type": "string", - "format": "date-time" - }, - "firstViewedAt": { - "type": "string", - "format": "date-time" - }, - "views": { - "type": "number", - "format": "double" - }, - "organization": { - "$ref": "#/components/schemas/Pick_Organization.organizationUuid_" - }, - "project": { - "$ref": "#/components/schemas/Pick_Project.projectUuid_" - }, - "dashboard": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_Dashboard.uuid-or-name_" - } - ], - "nullable": true - }, - "space": { - "$ref": "#/components/schemas/Pick_SpaceSummary.uuid-or-name-or-isPrivate-or-userAccess_" - }, - "lastUpdatedBy": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_LightdashUser.userUuid-or-firstName-or-lastName_" - } - ], - "nullable": true - }, - "lastUpdatedAt": { - "type": "string", - "format": "date-time" + "name": { + "type": "string" }, - "createdBy": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_LightdashUser.userUuid-or-firstName-or-lastName_" - } - ], - "nullable": true + "slug": { + "type": "string" }, - "createdAt": { + "updatedAt": { "type": "string", "format": "date-time" }, - "chartKind": { - "$ref": "#/components/schemas/ChartKind" - }, - "config": { - "allOf": [ - { - "$ref": "#/components/schemas/VizBaseConfig" - }, - { - "anyOf": [ - { - "$ref": "#/components/schemas/VizCartesianChartConfig" - }, - { - "$ref": "#/components/schemas/VizPieChartConfig" - }, - { - "$ref": "#/components/schemas/VizTableConfig" - } - ] - } - ] + "tabs": { + "items": { + "$ref": "#/components/schemas/DashboardTab" + }, + "type": "array" }, - "limit": { + "version": { "type": "number", "format": "double" }, - "sql": { - "type": "string" - }, - "slug": { + "spaceSlug": { "type": "string" }, - "description": { + "downloadedAt": { "type": "string", - "nullable": true - }, - "name": { - "type": "string" - }, - "savedSqlUuid": { - "type": "string" + "format": "date-time" } }, "required": [ - "lastViewedAt", - "firstViewedAt", - "views", - "organization", - "project", - "dashboard", - "space", - "lastUpdatedBy", - "lastUpdatedAt", - "createdBy", - "createdAt", - "chartKind", - "config", - "limit", - "sql", - "slug", - "description", "name", - "savedSqlUuid" + "slug", + "updatedAt", + "tabs", + "version", + "spaceSlug" ], - "type": "object" + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" }, - "ApiSqlChart": { + "Omit_DashboardAsCode.filters-or-tiles-or-description_": { + "$ref": "#/components/schemas/Pick_DashboardAsCode.Exclude_keyofDashboardAsCode.filters-or-tiles-or-description__", + "description": "Construct a type with the properties of T except for those in type K." + }, + "CacheMetadata": { "properties": { - "results": { - "$ref": "#/components/schemas/SqlChart" + "cacheHit": { + "type": "boolean" }, - "status": { + "cacheUpdatedTime": { "type": "string", - "enum": ["ok"], - "nullable": false + "format": "date-time" } }, - "required": ["results", "status"], + "required": ["cacheHit"], "type": "object" }, - "ApiCreateSqlChart": { + "Record_string.Item-or-AdditionalMetric_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" + }, + "ApiRunQueryResponse": { "properties": { "results": { "properties": { - "slug": { - "type": "string" + "fields": { + "$ref": "#/components/schemas/Record_string.Item-or-AdditionalMetric_" }, - "savedSqlUuid": { - "type": "string" + "rows": { + "items": {}, + "type": "array" + }, + "cacheMetadata": { + "$ref": "#/components/schemas/CacheMetadata" + }, + "metricQuery": { + "$ref": "#/components/schemas/MetricQueryResponse" } }, - "required": ["slug", "savedSqlUuid"], + "required": ["rows", "cacheMetadata", "metricQuery"], "type": "object" }, "status": { @@ -7976,234 +7943,55 @@ "required": ["results", "status"], "type": "object" }, - "VizBarChartConfig": { - "allOf": [ - { - "$ref": "#/components/schemas/VizBaseConfig" + "Pick_ChartVersion.chartUuid-or-versionUuid-or-createdAt-or-createdBy_": { + "properties": { + "createdAt": { + "type": "string", + "format": "date-time" }, - { - "properties": { - "display": { - "$ref": "#/components/schemas/CartesianChartDisplay" - }, - "fieldConfig": { - "$ref": "#/components/schemas/VizChartLayout" - }, - "type": { - "$ref": "#/components/schemas/ChartKind.VERTICAL_BAR" - } - }, - "required": ["type"], - "type": "object" - } - ] - }, - "VizLineChartConfig": { - "allOf": [ - { - "$ref": "#/components/schemas/VizBaseConfig" - }, - { - "properties": { - "display": { - "$ref": "#/components/schemas/CartesianChartDisplay" - }, - "fieldConfig": { - "$ref": "#/components/schemas/VizChartLayout" - }, - "type": { - "$ref": "#/components/schemas/ChartKind.LINE" - } - }, - "required": ["type"], - "type": "object" - } - ] - }, - "VizChartConfig": { - "anyOf": [ - { - "$ref": "#/components/schemas/VizBarChartConfig" - }, - { - "$ref": "#/components/schemas/VizLineChartConfig" - }, - { - "$ref": "#/components/schemas/VizPieChartConfig" - }, - { - "$ref": "#/components/schemas/VizTableConfig" - } - ] - }, - "CreateSqlChart": { - "properties": { - "spaceUuid": { + "chartUuid": { "type": "string" }, - "config": { - "$ref": "#/components/schemas/VizChartConfig" - }, - "limit": { - "type": "number", - "format": "double" - }, - "sql": { + "versionUuid": { "type": "string" }, - "description": { - "type": "string", + "createdBy": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_LightdashUser.userUuid-or-firstName-or-lastName_" + } + ], "nullable": true - }, - "name": { - "type": "string" } }, "required": [ - "spaceUuid", - "config", - "limit", - "sql", - "description", - "name" + "createdAt", + "chartUuid", + "versionUuid", + "createdBy" ], - "type": "object" - }, - "ApiUpdateSqlChart": { - "properties": { - "results": { - "properties": { - "savedSqlVersionUuid": { - "type": "string", - "nullable": true - }, - "savedSqlUuid": { - "type": "string" - } - }, - "required": ["savedSqlVersionUuid", "savedSqlUuid"], - "type": "object" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "UpdateUnversionedSqlChart": { - "properties": { - "spaceUuid": { - "type": "string" - }, - "description": { - "type": "string", - "nullable": true - }, - "name": { - "type": "string" - } - }, - "required": ["spaceUuid", "description", "name"], - "type": "object" - }, - "UpdateVersionedSqlChart": { - "properties": { - "config": { - "$ref": "#/components/schemas/VizChartConfig" - }, - "limit": { - "type": "number", - "format": "double" - }, - "sql": { - "type": "string" - } - }, - "required": ["config", "limit", "sql"], - "type": "object" - }, - "UpdateSqlChart": { - "properties": { - "versionedData": { - "$ref": "#/components/schemas/UpdateVersionedSqlChart" - }, - "unversionedData": { - "$ref": "#/components/schemas/UpdateUnversionedSqlChart" - } - }, - "type": "object" - }, - "Pick_Explore.name_": { - "properties": { - "name": { - "type": "string" - } - }, - "required": ["name"], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "ApiCreateCustomExplore": { - "properties": { - "results": { - "$ref": "#/components/schemas/Pick_Explore.name_" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "VizColumn": { - "properties": { - "type": { - "$ref": "#/components/schemas/DimensionType" - }, - "reference": { - "type": "string" - } - }, - "required": ["reference"], - "type": "object" + "ChartVersionSummary": { + "$ref": "#/components/schemas/Pick_ChartVersion.chartUuid-or-versionUuid-or-createdAt-or-createdBy_" }, - "CreateCustomExplorePayload": { + "ChartHistory": { "properties": { - "columns": { + "history": { "items": { - "$ref": "#/components/schemas/VizColumn" + "$ref": "#/components/schemas/ChartVersionSummary" }, "type": "array" - }, - "sql": { - "type": "string" - }, - "name": { - "type": "string" } }, - "required": ["columns", "sql", "name"], + "required": ["history"], "type": "object" }, - "Pick_SshKeyPair.publicKey_": { - "properties": { - "publicKey": { - "type": "string" - } - }, - "required": ["publicKey"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "ApiSshKeyPairResponse": { + "ApiGetChartHistoryResponse": { "properties": { "results": { - "$ref": "#/components/schemas/Pick_SshKeyPair.publicKey_" + "$ref": "#/components/schemas/ChartHistory" }, "status": { "type": "string", @@ -8214,231 +8002,165 @@ "required": ["results", "status"], "type": "object" }, - "UserAttributeValue": { - "properties": { - "value": { - "type": "string" - }, - "email": { - "type": "string" - }, - "userUuid": { - "type": "string" - } - }, - "required": ["value", "email", "userUuid"], - "type": "object" - }, - "GroupAttributeValue": { + "SavedChart": { "properties": { - "value": { - "type": "string" - }, - "groupUuid": { + "slug": { "type": "string" - } - }, - "required": ["value", "groupUuid"], - "type": "object" - }, - "UserAttribute": { - "properties": { - "attributeDefault": { - "type": "string", - "nullable": true }, - "groups": { + "access": { "items": { - "$ref": "#/components/schemas/GroupAttributeValue" + "$ref": "#/components/schemas/SpaceShare" }, "type": "array" }, - "users": { + "isPrivate": { + "type": "boolean" + }, + "colorPalette": { "items": { - "$ref": "#/components/schemas/UserAttributeValue" + "type": "string" }, "type": "array" }, - "description": { - "type": "string" - }, - "organizationUuid": { - "type": "string" - }, - "name": { - "type": "string" + "dashboardName": { + "type": "string", + "nullable": true }, - "createdAt": { + "dashboardUuid": { "type": "string", - "format": "date-time" + "nullable": true }, - "uuid": { - "type": "string" - } - }, - "required": [ - "attributeDefault", - "groups", - "users", - "organizationUuid", - "name", - "createdAt", - "uuid" - ], - "type": "object" - }, - "ApiUserAttributesResponse": { - "properties": { - "results": { - "items": { - "$ref": "#/components/schemas/UserAttribute" - }, - "type": "array" + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true }, - "status": { + "pinnedListUuid": { "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "ApiCreateUserAttributeResponse": { - "properties": { - "results": { - "$ref": "#/components/schemas/UserAttribute" + "nullable": true }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "Pick_UserAttribute.name-or-description-or-attributeDefault_": { - "properties": { - "name": { + "spaceName": { "type": "string" }, - "description": { + "spaceUuid": { "type": "string" }, - "attributeDefault": { - "type": "string", - "nullable": true - } - }, - "required": ["name", "attributeDefault"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Pick_UserAttributeValue.Exclude_keyofUserAttributeValue.email__": { - "properties": { - "userUuid": { + "organizationUuid": { "type": "string" }, - "value": { - "type": "string" - } - }, - "required": ["userUuid", "value"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Omit_UserAttributeValue.email_": { - "$ref": "#/components/schemas/Pick_UserAttributeValue.Exclude_keyofUserAttributeValue.email__", - "description": "Construct a type with the properties of T except for those in type K." - }, - "CreateUserAttributeValue": { - "$ref": "#/components/schemas/Omit_UserAttributeValue.email_" - }, - "CreateGroupAttributeValue": { - "$ref": "#/components/schemas/GroupAttributeValue" - }, - "CreateUserAttribute": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_UserAttribute.name-or-description-or-attributeDefault_" + "updatedByUser": { + "$ref": "#/components/schemas/UpdatedByUser" }, - { + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "tableConfig": { "properties": { - "groups": { + "columnOrder": { "items": { - "$ref": "#/components/schemas/CreateGroupAttributeValue" + "type": "string" }, "type": "array" - }, - "users": { + } + }, + "required": ["columnOrder"], + "type": "object" + }, + "chartConfig": { + "$ref": "#/components/schemas/ChartConfig" + }, + "pivotConfig": { + "properties": { + "columns": { "items": { - "$ref": "#/components/schemas/CreateUserAttributeValue" + "type": "string" }, "type": "array" } }, - "required": ["groups", "users"], + "required": ["columns"], "type": "object" - } - ] - }, - "LightdashUser": { - "properties": { - "userUuid": { - "type": "string" }, - "email": { + "metricQuery": { + "$ref": "#/components/schemas/MetricQuery" + }, + "tableName": { "type": "string" }, - "firstName": { + "description": { "type": "string" }, - "lastName": { + "name": { "type": "string" }, - "organizationUuid": { + "projectUuid": { "type": "string" }, - "organizationName": { + "uuid": { "type": "string" + } + }, + "required": [ + "slug", + "access", + "isPrivate", + "colorPalette", + "dashboardName", + "dashboardUuid", + "pinnedListOrder", + "pinnedListUuid", + "spaceName", + "spaceUuid", + "organizationUuid", + "updatedAt", + "tableConfig", + "chartConfig", + "metricQuery", + "tableName", + "name", + "projectUuid", + "uuid" + ], + "type": "object" + }, + "ChartVersion": { + "properties": { + "chart": { + "$ref": "#/components/schemas/SavedChart" }, - "organizationCreatedAt": { + "createdBy": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_LightdashUser.userUuid-or-firstName-or-lastName_" + } + ], + "nullable": true + }, + "createdAt": { "type": "string", "format": "date-time" }, - "isTrackingAnonymized": { - "type": "boolean" - }, - "isMarketingOptedIn": { - "type": "boolean" - }, - "isSetupComplete": { - "type": "boolean" - }, - "role": { - "$ref": "#/components/schemas/OrganizationMemberRole" + "versionUuid": { + "type": "string" }, - "isActive": { - "type": "boolean" + "chartUuid": { + "type": "string" } }, "required": [ - "userUuid", - "firstName", - "lastName", - "isTrackingAnonymized", - "isMarketingOptedIn", - "isSetupComplete", - "isActive" + "chart", + "createdBy", + "createdAt", + "versionUuid", + "chartUuid" ], - "type": "object", - "additionalProperties": true + "type": "object" }, - "ApiGetAuthenticatedUserResponse": { + "ApiGetChartVersionResponse": { "properties": { "results": { - "$ref": "#/components/schemas/LightdashUser" + "$ref": "#/components/schemas/ChartVersion" }, "status": { "type": "string", @@ -8447,13 +8169,12 @@ } }, "required": ["results", "status"], - "type": "object", - "description": "Shows the authenticated user" + "type": "object" }, - "ApiRegisterUserResponse": { + "ApiPromoteChartResponse": { "properties": { "results": { - "$ref": "#/components/schemas/LightdashUser" + "$ref": "#/components/schemas/SavedChartDAO" }, "status": { "type": "string", @@ -8464,707 +8185,630 @@ "required": ["results", "status"], "type": "object" }, - "ActivateUser": { + "SchedulerFormat": { + "enum": ["csv", "image", "gsheets"], + "type": "string" + }, + "SchedulerCsvOptions": { "properties": { - "password": { - "type": "string" - }, - "lastName": { - "type": "string" + "limit": { + "anyOf": [ + { + "type": "number", + "format": "double" + }, + { + "type": "string", + "enum": ["table", "all"] + } + ] }, - "firstName": { - "type": "string" + "formatted": { + "type": "boolean" } }, - "required": ["password", "lastName", "firstName"], + "required": ["limit", "formatted"], "type": "object" }, - "ActivateUserWithInviteCode": { - "allOf": [ - { - "$ref": "#/components/schemas/ActivateUser" - }, - { - "properties": { - "inviteCode": { - "type": "string" - } - }, - "required": ["inviteCode"], - "type": "object" + "SchedulerImageOptions": { + "properties": { + "withPdf": { + "type": "boolean" } - ] - }, - "Email": { - "type": "string", - "description": "Email", - "pattern": "^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$" + }, + "type": "object" }, - "CreateUserArgs": { + "SchedulerGsheetsOptions": { "properties": { - "password": { + "url": { "type": "string" }, - "email": { - "$ref": "#/components/schemas/Email" + "gdriveOrganizationName": { + "type": "string" }, - "lastName": { + "gdriveName": { "type": "string" }, - "firstName": { + "gdriveId": { "type": "string" } }, - "required": ["password", "email", "lastName", "firstName"], + "required": [ + "url", + "gdriveOrganizationName", + "gdriveName", + "gdriveId" + ], "type": "object" }, - "RegisterOrActivateUser": { + "SchedulerOptions": { "anyOf": [ { - "$ref": "#/components/schemas/ActivateUserWithInviteCode" + "$ref": "#/components/schemas/SchedulerCsvOptions" }, { - "$ref": "#/components/schemas/CreateUserArgs" + "$ref": "#/components/schemas/SchedulerImageOptions" + }, + { + "$ref": "#/components/schemas/SchedulerGsheetsOptions" } ] }, - "EmailOneTimePassword": { + "ThresholdOperator": { + "enum": [ + "greaterThan", + "lessThan", + "increasedBy", + "decreasedBy" + ], + "type": "string" + }, + "ThresholdOptions": { "properties": { - "numberOfAttempts": { + "value": { "type": "number", - "format": "double", - "description": "Number of times the passcode has been attempted" + "format": "double" }, - "createdAt": { - "type": "string", - "format": "date-time", - "description": "Time that the passcode was created" + "fieldId": { + "type": "string" + }, + "operator": { + "$ref": "#/components/schemas/ThresholdOperator" } }, - "required": ["numberOfAttempts", "createdAt"], + "required": ["value", "fieldId", "operator"], "type": "object" }, - "EmailStatus": { + "NotificationFrequency": { + "enum": ["always", "once"], + "type": "string" + }, + "SchedulerBase": { "properties": { - "otp": { - "$ref": "#/components/schemas/EmailOneTimePassword" + "includeLinks": { + "type": "boolean" }, - "isVerified": { + "notificationFrequency": { + "$ref": "#/components/schemas/NotificationFrequency" + }, + "enabled": { "type": "boolean" }, - "email": { + "thresholds": { + "items": { + "$ref": "#/components/schemas/ThresholdOptions" + }, + "type": "array" + }, + "options": { + "$ref": "#/components/schemas/SchedulerOptions" + }, + "dashboardUuid": { + "type": "string", + "nullable": true + }, + "savedChartUuid": { + "type": "string", + "nullable": true + }, + "timezone": { + "type": "string" + }, + "cron": { + "type": "string" + }, + "format": { + "$ref": "#/components/schemas/SchedulerFormat" + }, + "createdBy": { + "type": "string" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "message": { + "type": "string" + }, + "name": { + "type": "string" + }, + "schedulerUuid": { "type": "string" } }, - "required": ["isVerified", "email"], + "required": [ + "includeLinks", + "enabled", + "options", + "dashboardUuid", + "savedChartUuid", + "cron", + "format", + "createdBy", + "updatedAt", + "createdAt", + "name", + "schedulerUuid" + ], "type": "object" }, - "EmailOneTimePasswordExpiring": { + "ChartScheduler": { "allOf": [ { - "$ref": "#/components/schemas/EmailOneTimePassword" + "$ref": "#/components/schemas/SchedulerBase" }, { "properties": { - "isMaxAttempts": { - "type": "boolean" - }, - "isExpired": { - "type": "boolean" + "dashboardUuid": { + "type": "number", + "enum": [null], + "nullable": true }, - "expiresAt": { - "type": "string", - "format": "date-time" + "savedChartUuid": { + "type": "string" } }, - "required": ["isMaxAttempts", "isExpired", "expiresAt"], + "required": ["dashboardUuid", "savedChartUuid"], "type": "object" } ] }, - "EmailStatusExpiring": { + "SchedulerFilterRule": { "allOf": [ { - "$ref": "#/components/schemas/EmailStatus" + "$ref": "#/components/schemas/DashboardFilterRule" }, { "properties": { - "otp": { - "$ref": "#/components/schemas/EmailOneTimePasswordExpiring", - "description": "One time passcode information\nIf there is no active passcode, this will be undefined" + "tileTargets": {} + }, + "type": "object" + } + ] + }, + "DashboardScheduler": { + "allOf": [ + { + "$ref": "#/components/schemas/SchedulerBase" + }, + { + "properties": { + "selectedTabs": { + "items": { + "type": "string" + }, + "type": "array" + }, + "customViewportWidth": { + "type": "number", + "format": "double" + }, + "filters": { + "items": { + "$ref": "#/components/schemas/SchedulerFilterRule" + }, + "type": "array" + }, + "dashboardUuid": { + "type": "string" + }, + "savedChartUuid": { + "type": "number", + "enum": [null], + "nullable": true } }, + "required": ["dashboardUuid", "savedChartUuid"], "type": "object" } - ], - "description": "Verification status of an email address" + ] }, - "ApiEmailStatusResponse": { - "properties": { - "results": { - "$ref": "#/components/schemas/EmailStatusExpiring" + "Scheduler": { + "anyOf": [ + { + "$ref": "#/components/schemas/ChartScheduler" }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false + { + "$ref": "#/components/schemas/DashboardScheduler" } - }, - "required": ["results", "status"], - "type": "object", - "description": "Shows the current verification status of an email address" + ] }, - "UserAllowedOrganization": { + "SchedulerSlackTarget": { "properties": { - "membersCount": { - "type": "number", - "format": "double" - }, - "name": { + "channel": { "type": "string" }, - "organizationUuid": { + "schedulerUuid": { "type": "string" - } - }, - "required": ["membersCount", "name", "organizationUuid"], - "type": "object" - }, - "ApiUserAllowedOrganizationsResponse": { - "properties": { - "results": { - "items": { - "$ref": "#/components/schemas/UserAllowedOrganization" - }, - "type": "array" }, - "status": { + "updatedAt": { "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" - }, - "Pick_CreateRedshiftCredentials.type-or-user-or-password_": { - "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.REDSHIFT" - }, - "user": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "required": ["type", "user", "password"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Pick_CreatePostgresCredentials.type-or-user-or-password_": { - "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.POSTGRES" - }, - "user": { - "type": "string" - }, - "password": { - "type": "string" - } - }, - "required": ["type", "user", "password"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Pick_CreateSnowflakeCredentials.type-or-user-or-password_": { - "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.SNOWFLAKE" + "format": "date-time" }, - "user": { - "type": "string" + "createdAt": { + "type": "string", + "format": "date-time" }, - "password": { + "schedulerSlackTargetUuid": { "type": "string" } }, - "required": ["type", "user"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "required": [ + "channel", + "schedulerUuid", + "updatedAt", + "createdAt", + "schedulerSlackTargetUuid" + ], + "type": "object" }, - "Pick_CreateTrinoCredentials.type-or-user-or-password_": { + "SchedulerEmailTarget": { "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.TRINO" - }, - "user": { + "recipient": { "type": "string" }, - "password": { + "schedulerUuid": { "type": "string" - } - }, - "required": ["type", "user", "password"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Pick_CreateBigqueryCredentials.type-or-keyfileContents_": { - "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.BIGQUERY" }, - "keyfileContents": { - "$ref": "#/components/schemas/Record_string.string_" - } - }, - "required": ["type", "keyfileContents"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Pick_CreateDatabricksCredentials.type-or-personalAccessToken_": { - "properties": { - "type": { - "$ref": "#/components/schemas/WarehouseTypes.DATABRICKS" + "updatedAt": { + "type": "string", + "format": "date-time" }, - "personalAccessToken": { - "type": "string" - } - }, - "required": ["type", "personalAccessToken"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "UpsertUserWarehouseCredentials": { - "properties": { - "credentials": { - "anyOf": [ - { - "$ref": "#/components/schemas/Pick_CreateRedshiftCredentials.type-or-user-or-password_" - }, - { - "$ref": "#/components/schemas/Pick_CreatePostgresCredentials.type-or-user-or-password_" - }, - { - "$ref": "#/components/schemas/Pick_CreateSnowflakeCredentials.type-or-user-or-password_" - }, - { - "$ref": "#/components/schemas/Pick_CreateTrinoCredentials.type-or-user-or-password_" - }, - { - "$ref": "#/components/schemas/Pick_CreateBigqueryCredentials.type-or-keyfileContents_" - }, - { - "$ref": "#/components/schemas/Pick_CreateDatabricksCredentials.type-or-personalAccessToken_" - } - ] + "createdAt": { + "type": "string", + "format": "date-time" }, - "name": { + "schedulerEmailTargetUuid": { "type": "string" } }, - "required": ["credentials", "name"], + "required": [ + "recipient", + "schedulerUuid", + "updatedAt", + "createdAt", + "schedulerEmailTargetUuid" + ], "type": "object" }, - "OpenIdIdentityIssuerType": { - "enum": ["google", "okta", "oneLogin", "azuread", "oidc"], - "type": "string" - }, - "LocalIssuerTypes": { - "enum": ["email", "apiToken"], - "type": "string" - }, - "LoginOptionTypes": { - "anyOf": [ + "SchedulerAndTargets": { + "allOf": [ { - "$ref": "#/components/schemas/OpenIdIdentityIssuerType" + "$ref": "#/components/schemas/Scheduler" }, { - "$ref": "#/components/schemas/LocalIssuerTypes" - } - ] - }, - "LoginOptions": { - "properties": { - "redirectUri": { - "type": "string" - }, - "forceRedirect": { - "type": "boolean" - }, - "showOptions": { - "items": { - "$ref": "#/components/schemas/LoginOptionTypes" + "properties": { + "targets": { + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SchedulerSlackTarget" + }, + { + "$ref": "#/components/schemas/SchedulerEmailTarget" + } + ] + }, + "type": "array" + } }, - "type": "array" - } - }, - "required": ["showOptions"], - "type": "object" - }, - "ApiGetLoginOptionsResponse": { - "properties": { - "results": { - "$ref": "#/components/schemas/LoginOptions" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false + "required": ["targets"], + "type": "object" } - }, - "required": ["results", "status"], - "type": "object" + ] }, - "ContentType.CHART": { - "enum": ["chart"], + "SchedulerJobStatus": { + "enum": ["scheduled", "started", "completed", "error"], "type": "string" }, - "ContentType": { - "enum": ["chart", "dashboard"], - "type": "string" + "Record_string.any_": { + "properties": {}, + "type": "object", + "description": "Construct a type with a set of properties K of type T" }, - "ChartContent": { + "SchedulerLog": { "properties": { - "contentType": { - "$ref": "#/components/schemas/ContentType.CHART" + "details": { + "$ref": "#/components/schemas/Record_string.any_" }, - "uuid": { - "type": "string" + "targetType": { + "type": "string", + "enum": ["email", "slack", "gsheets"] }, - "slug": { + "target": { "type": "string" }, - "name": { - "type": "string" + "status": { + "$ref": "#/components/schemas/SchedulerJobStatus" }, - "description": { + "createdAt": { "type": "string", - "nullable": true + "format": "date-time" }, - "createdAt": { + "scheduledTime": { "type": "string", "format": "date-time" }, - "createdBy": { - "properties": { - "lastName": { - "type": "string" - }, - "firstName": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "required": ["lastName", "firstName", "uuid"], - "type": "object", - "nullable": true + "jobGroup": { + "type": "string" }, - "lastUpdatedAt": { - "type": "string", - "format": "date-time", - "nullable": true + "jobId": { + "type": "string" }, - "lastUpdatedBy": { - "properties": { - "lastName": { - "type": "string" - }, - "firstName": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "required": ["lastName", "firstName", "uuid"], - "type": "object", - "nullable": true + "schedulerUuid": { + "type": "string" }, - "project": { - "properties": { - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } + "task": { + "type": "string", + "enum": [ + "handleScheduledDelivery", + "sendEmailNotification", + "sendSlackNotification", + "uploadGsheets", + "downloadCsv", + "uploadGsheetFromQuery", + "createProjectWithCompile", + "compileProject", + "testAndCompileProject", + "validateProject", + "sqlRunner", + "sqlRunnerPivotQuery", + "semanticLayer", + "indexCatalog" + ] + } + }, + "required": [ + "status", + "createdAt", + "scheduledTime", + "jobId", + "task" + ], + "type": "object" + }, + "SchedulerWithLogs": { + "properties": { + "logs": { + "items": { + "$ref": "#/components/schemas/SchedulerLog" }, - "required": ["name", "uuid"], - "type": "object" + "type": "array" }, - "organization": { - "properties": { - "name": { - "type": "string" + "dashboards": { + "items": { + "properties": { + "dashboardUuid": { + "type": "string" + }, + "name": { + "type": "string" + } }, - "uuid": { - "type": "string" - } + "required": ["dashboardUuid", "name"], + "type": "object" }, - "required": ["name", "uuid"], - "type": "object" + "type": "array" }, - "space": { - "properties": { - "name": { - "type": "string" + "charts": { + "items": { + "properties": { + "savedChartUuid": { + "type": "string" + }, + "name": { + "type": "string" + } }, - "uuid": { - "type": "string" - } + "required": ["savedChartUuid", "name"], + "type": "object" }, - "required": ["name", "uuid"], - "type": "object" + "type": "array" }, - "pinnedList": { - "properties": { - "uuid": { - "type": "string" - } + "users": { + "items": { + "properties": { + "userUuid": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "firstName": { + "type": "string" + } + }, + "required": ["userUuid", "lastName", "firstName"], + "type": "object" }, - "required": ["uuid"], - "type": "object", - "nullable": true - }, - "views": { - "type": "number", - "format": "double" - }, - "firstViewedAt": { - "type": "string", - "format": "date-time", - "nullable": true - }, - "source": { - "$ref": "#/components/schemas/ChartSourceType" - }, - "chartKind": { - "$ref": "#/components/schemas/ChartKind" + "type": "array" }, - "dashboard": { - "properties": { - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } + "schedulers": { + "items": { + "$ref": "#/components/schemas/SchedulerAndTargets" }, - "required": ["name", "uuid"], - "type": "object", - "nullable": true + "type": "array" } }, "required": [ - "contentType", - "uuid", - "slug", - "name", - "description", - "createdAt", - "createdBy", - "lastUpdatedAt", - "lastUpdatedBy", - "project", - "organization", - "space", - "pinnedList", - "views", - "firstViewedAt", - "source", - "chartKind", - "dashboard" + "logs", + "dashboards", + "charts", + "users", + "schedulers" ], - "type": "object", - "additionalProperties": true - }, - "ContentType.DASHBOARD": { - "enum": ["dashboard"], - "type": "string" + "type": "object" }, - "DashboardContent": { + "ApiSchedulerLogsResponse": { "properties": { - "contentType": { - "$ref": "#/components/schemas/ContentType.DASHBOARD" - }, - "uuid": { - "type": "string" - }, - "slug": { - "type": "string" + "results": { + "$ref": "#/components/schemas/SchedulerWithLogs" }, - "name": { - "type": "string" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "ApiSchedulerAndTargetsResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/SchedulerAndTargets" }, - "description": { + "status": { "type": "string", - "nullable": true + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "ScheduledJobs": { + "properties": { + "id": { + "type": "string" }, - "createdAt": { + "date": { "type": "string", "format": "date-time" - }, - "createdBy": { - "properties": { - "lastName": { - "type": "string" - }, - "firstName": { - "type": "string" - }, - "uuid": { - "type": "string" - } + } + }, + "required": ["id", "date"], + "type": "object" + }, + "ApiScheduledJobsResponse": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/ScheduledJobs" }, - "required": ["lastName", "firstName", "uuid"], - "type": "object", - "nullable": true + "type": "array" }, - "lastUpdatedAt": { + "status": { "type": "string", - "format": "date-time", - "nullable": true - }, - "lastUpdatedBy": { - "properties": { - "lastName": { - "type": "string" - }, - "firstName": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "required": ["lastName", "firstName", "uuid"], - "type": "object", - "nullable": true - }, - "project": { - "properties": { - "name": { - "type": "string" - }, - "uuid": { - "type": "string" - } - }, - "required": ["name", "uuid"], - "type": "object" - }, - "organization": { + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "ApiJobStatusResponse": { + "properties": { + "results": { "properties": { - "name": { - "type": "string" + "details": { + "allOf": [ + { + "$ref": "#/components/schemas/Record_string.any_" + } + ], + "nullable": true }, - "uuid": { - "type": "string" + "status": { + "$ref": "#/components/schemas/SchedulerJobStatus" } }, - "required": ["name", "uuid"], + "required": ["details", "status"], "type": "object" }, - "space": { + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "ApiTestSchedulerResponse": { + "properties": { + "results": { "properties": { - "name": { - "type": "string" - }, - "uuid": { + "jobId": { "type": "string" } }, - "required": ["name", "uuid"], + "required": ["jobId"], "type": "object" }, - "pinnedList": { - "properties": { - "uuid": { - "type": "string" - } - }, - "required": ["uuid"], - "type": "object", - "nullable": true - }, - "views": { - "type": "number", - "format": "double" - }, - "firstViewedAt": { + "status": { "type": "string", - "format": "date-time", - "nullable": true + "enum": ["ok"], + "nullable": false } }, - "required": [ - "contentType", - "uuid", - "slug", - "name", - "description", - "createdAt", - "createdBy", - "lastUpdatedAt", - "lastUpdatedBy", - "project", - "organization", - "space", - "pinnedList", - "views", - "firstViewedAt" - ], - "type": "object", - "additionalProperties": true - }, - "SummaryContent": { - "anyOf": [ - { - "$ref": "#/components/schemas/ChartContent" - }, - { - "$ref": "#/components/schemas/DashboardContent" - } - ] + "required": ["results", "status"], + "type": "object" }, - "KnexPaginatedData_SummaryContent-Array_": { + "ShareUrl": { "properties": { - "pagination": { - "allOf": [ - { - "$ref": "#/components/schemas/KnexPaginateArgs" - }, - { - "properties": { - "totalPageCount": { - "type": "number", - "format": "double" - } - }, - "required": ["totalPageCount"], - "type": "object" - } - ] + "host": { + "type": "string" }, - "data": { - "items": { - "$ref": "#/components/schemas/SummaryContent" - }, - "type": "array" + "url": { + "type": "string" + }, + "shareUrl": { + "type": "string" + }, + "organizationUuid": { + "type": "string", + "format": "uuid" + }, + "createdByUserUuid": { + "type": "string", + "format": "uuid" + }, + "params": { + "type": "string" + }, + "path": { + "type": "string", + "description": "The URL path of the full URL" + }, + "nanoid": { + "type": "string", + "description": "Unique shareable id" } }, - "required": ["data"], - "type": "object" + "required": ["params", "path", "nanoid"], + "type": "object", + "description": "A ShareUrl maps a short shareable id to a full URL\nin the Lightdash UI. This allows very long URLs\nto be represented by short ids." }, - "ApiContentResponse": { + "ApiShareResponse": { "properties": { "results": { - "$ref": "#/components/schemas/KnexPaginatedData_SummaryContent-Array_" + "$ref": "#/components/schemas/ShareUrl" }, "status": { "type": "string", @@ -9175,543 +8819,811 @@ "required": ["results", "status"], "type": "object" }, - "SemanticLayerClientInfo": { + "Pick_ShareUrl.path-or-params_": { + "properties": { + "path": { + "type": "string", + "description": "The URL path of the full URL" + }, + "params": { + "type": "string" + } + }, + "required": ["path", "params"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "CreateShareUrl": { + "$ref": "#/components/schemas/Pick_ShareUrl.path-or-params_", + "description": "Contains the detail of a full URL to generate a short URL id" + }, + "SlackChannel": { "properties": { "name": { "type": "string" }, - "features": { - "properties": { - "views": { - "type": "boolean" - } - }, - "required": ["views"], - "type": "object" - }, - "config": { - "properties": { - "maxQueryLimit": { - "type": "number", - "format": "double" - } - }, - "required": ["maxQueryLimit"], - "type": "object" + "id": { + "type": "string" } }, - "required": ["name", "features", "config"], - "type": "object", - "additionalProperties": true + "required": ["name", "id"], + "type": "object" }, - "ApiSemanticLayerClientInfo": { + "ApiSlackChannelsResponse": { "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/SlackChannel" + }, + "type": "array" + }, "status": { "type": "string", "enum": ["ok"], "nullable": false - }, - "results": { - "allOf": [ - { - "$ref": "#/components/schemas/SemanticLayerClientInfo" - } - ], - "nullable": true } }, - "required": ["status", "results"], - "type": "object", - "additionalProperties": true + "required": ["status"], + "type": "object" }, - "SemanticLayerView": { + "ApiSlackCustomSettingsResponse": { "properties": { - "visible": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "label": { + "results": {}, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "SlackChannelProjectMapping": { + "properties": { + "slackChannelId": { "type": "string" }, - "name": { + "projectUuid": { "type": "string" } }, - "required": ["visible", "label", "name"], + "required": ["slackChannelId", "projectUuid"], "type": "object" }, - "SemanticLayerFieldType": { - "enum": ["time", "number", "string", "boolean"], - "type": "string" + "SlackAppCustomSettings": { + "properties": { + "slackChannelProjectMappings": { + "items": { + "$ref": "#/components/schemas/SlackChannelProjectMapping" + }, + "type": "array" + }, + "appProfilePhotoUrl": { + "type": "string", + "nullable": true + }, + "notificationChannel": { + "type": "string", + "nullable": true + } + }, + "required": ["appProfilePhotoUrl", "notificationChannel"], + "type": "object" }, - "SemanticLayerTimeGranularity": { - "enum": [ - "NANOSECOND", - "MICROSECOND", - "MILLISECOND", - "SECOND", - "MINUTE", - "HOUR", - "DAY", - "WEEK", - "MONTH", - "QUARTER", - "YEAR" - ], - "type": "string" + "SpaceDashboard": { + "$ref": "#/components/schemas/DashboardBasicDetails" }, - "SemanticLayerFilterBaseOperator": { - "enum": ["IS", "IS_NOT"], - "type": "string" + "SpaceGroup": { + "properties": { + "spaceRole": { + "$ref": "#/components/schemas/SpaceMemberRole" + }, + "groupName": { + "type": "string" + }, + "groupUuid": { + "type": "string" + } + }, + "required": ["spaceRole", "groupName", "groupUuid"], + "type": "object" }, - "SemanticLayerField": { + "Space": { "properties": { - "availableOperators": { + "slug": { + "type": "string" + }, + "pinnedListOrder": { + "type": "number", + "format": "double", + "nullable": true + }, + "pinnedListUuid": { + "type": "string", + "nullable": true + }, + "groupsAccess": { "items": { - "$ref": "#/components/schemas/SemanticLayerFilterBaseOperator" + "$ref": "#/components/schemas/SpaceGroup" }, "type": "array" }, - "availableGranularities": { + "access": { "items": { - "$ref": "#/components/schemas/SemanticLayerTimeGranularity" + "$ref": "#/components/schemas/SpaceShare" }, "type": "array" }, - "aggType": { + "dashboards": { + "items": { + "$ref": "#/components/schemas/SpaceDashboard" + }, + "type": "array" + }, + "projectUuid": { "type": "string" }, - "visible": { + "queries": { + "items": { + "$ref": "#/components/schemas/SpaceQuery" + }, + "type": "array" + }, + "isPrivate": { "type": "boolean" }, - "description": { + "name": { "type": "string" }, - "kind": { - "$ref": "#/components/schemas/FieldType" - }, - "type": { - "$ref": "#/components/schemas/SemanticLayerFieldType" - }, - "label": { + "uuid": { "type": "string" }, - "name": { + "organizationUuid": { "type": "string" } }, "required": [ - "availableOperators", - "availableGranularities", - "visible", - "kind", - "type", - "label", - "name" + "slug", + "pinnedListOrder", + "pinnedListUuid", + "groupsAccess", + "access", + "dashboards", + "projectUuid", + "queries", + "isPrivate", + "name", + "uuid", + "organizationUuid" ], "type": "object" }, - "Pick_SemanticLayerField.name_": { + "ApiSpaceResponse": { "properties": { - "name": { - "type": "string" + "results": { + "$ref": "#/components/schemas/Space" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } }, - "required": ["name"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "required": ["results", "status"], + "type": "object" }, - "Pick_SemanticLayerTimeDimension.name-or-granularity_": { + "Pick_SpaceShare.userUuid-or-role_": { "properties": { - "name": { + "userUuid": { "type": "string" }, - "granularity": { - "$ref": "#/components/schemas/SemanticLayerTimeGranularity" + "role": { + "$ref": "#/components/schemas/SpaceMemberRole" } }, - "required": ["name"], + "required": ["userUuid", "role"], "type": "object", "description": "From T, pick a set of properties whose keys are in the union K" }, - "Pick_SemanticLayerQuery.dimensions-or-timeDimensions-or-metrics_": { + "CreateSpace": { "properties": { - "dimensions": { + "access": { "items": { - "$ref": "#/components/schemas/Pick_SemanticLayerField.name_" + "$ref": "#/components/schemas/Pick_SpaceShare.userUuid-or-role_" }, "type": "array" }, - "timeDimensions": { - "items": { - "$ref": "#/components/schemas/Pick_SemanticLayerTimeDimension.name-or-granularity_" - }, - "type": "array" + "isPrivate": { + "type": "boolean" }, - "metrics": { - "items": { - "$ref": "#/components/schemas/Pick_SemanticLayerField.name_" - }, - "type": "array" + "name": { + "type": "string" } }, - "required": ["dimensions", "timeDimensions", "metrics"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "required": ["name"], + "type": "object" }, - "SemanticLayerFilterBase": { + "UpdateSpace": { "properties": { - "fieldType": { - "$ref": "#/components/schemas/SemanticLayerFieldType" + "isPrivate": { + "type": "boolean" }, - "fieldKind": { - "$ref": "#/components/schemas/FieldType" + "name": { + "type": "string" + } + }, + "required": ["isPrivate", "name"], + "type": "object" + }, + "AddSpaceUserAccess": { + "properties": { + "spaceRole": { + "$ref": "#/components/schemas/SpaceMemberRole" }, - "fieldRef": { + "userUuid": { "type": "string" + } + }, + "required": ["spaceRole", "userUuid"], + "type": "object" + }, + "AddSpaceGroupAccess": { + "properties": { + "spaceRole": { + "$ref": "#/components/schemas/SpaceMemberRole" }, - "uuid": { + "groupUuid": { "type": "string" } }, - "required": ["fieldType", "fieldKind", "fieldRef", "uuid"], + "required": ["spaceRole", "groupUuid"], "type": "object" }, - "SemanticLayerFieldType.STRING": { - "enum": ["string"], + "PartitionType": { + "enum": ["DATE", "RANGE"], "type": "string" }, - "SemanticLayerStringFilter": { - "allOf": [ - { - "$ref": "#/components/schemas/SemanticLayerFilterBase" + "PartitionColumn": { + "properties": { + "field": { + "type": "string" }, - { - "properties": { - "values": { - "items": { - "type": "string" - }, - "type": "array" - }, - "operator": { - "$ref": "#/components/schemas/SemanticLayerFilterBaseOperator" - }, - "fieldType": { - "$ref": "#/components/schemas/SemanticLayerFieldType.STRING" - } - }, - "required": ["values", "operator", "fieldType"], - "type": "object" + "partitionType": { + "$ref": "#/components/schemas/PartitionType" } - ] - }, - "SemanticLayerFieldType.TIME": { - "enum": ["time"], - "type": "string" + }, + "required": ["field", "partitionType"], + "type": "object" }, - "SemanticLayerExactTimeFilter": { - "allOf": [ - { - "$ref": "#/components/schemas/SemanticLayerFilterBase" - }, - { - "properties": { - "values": { - "properties": { - "time": { - "type": "string" - } - }, - "required": ["time"], - "type": "object" - }, - "operator": { - "$ref": "#/components/schemas/SemanticLayerFilterBaseOperator" + "WarehouseTablesCatalog": { + "properties": {}, + "additionalProperties": { + "properties": {}, + "additionalProperties": { + "properties": {}, + "additionalProperties": { + "properties": { + "partitionColumn": { + "$ref": "#/components/schemas/PartitionColumn" + } }, - "fieldType": { - "$ref": "#/components/schemas/SemanticLayerFieldType.TIME" - } + "type": "object" }, - "required": ["values", "operator", "fieldType"], "type": "object" - } - ] - }, - "SemanticLayerFilterRelativeTimeValue": { - "enum": ["TODAY", "YESTERDAY", "LAST_7_DAYS", "LAST_30_DAYS"], - "type": "string" - }, - "SemanticLayerRelativeTimeFilter": { - "allOf": [ - { - "$ref": "#/components/schemas/SemanticLayerFilterBase" }, - { - "properties": { - "values": { - "properties": { - "relativeTime": { - "$ref": "#/components/schemas/SemanticLayerFilterRelativeTimeValue" - } - }, - "required": ["relativeTime"], - "type": "object" - }, - "operator": { - "$ref": "#/components/schemas/SemanticLayerFilterBaseOperator" - }, - "fieldType": { - "$ref": "#/components/schemas/SemanticLayerFieldType.TIME" - } - }, - "required": ["values", "operator", "fieldType"], - "type": "object" - } - ] + "type": "object" + }, + "type": "object" }, - "SemanticLayerTimeFilter": { - "anyOf": [ - { - "$ref": "#/components/schemas/SemanticLayerExactTimeFilter" + "ApiWarehouseTablesCatalog": { + "properties": { + "results": { + "$ref": "#/components/schemas/WarehouseTablesCatalog" }, - { - "$ref": "#/components/schemas/SemanticLayerRelativeTimeFilter" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } - ] + }, + "required": ["results", "status"], + "type": "object" }, - "SemanticLayerFilterTypes": { - "anyOf": [ - { - "$ref": "#/components/schemas/SemanticLayerStringFilter" + "WarehouseTableSchema": { + "properties": {}, + "additionalProperties": { + "$ref": "#/components/schemas/DimensionType" + }, + "type": "object" + }, + "ApiWarehouseTableFields": { + "properties": { + "results": { + "$ref": "#/components/schemas/WarehouseTableSchema" }, - { - "$ref": "#/components/schemas/SemanticLayerTimeFilter" + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false } - ] + }, + "required": ["results", "status"], + "type": "object" }, - "SemanticLayerFilter": { - "allOf": [ - { - "$ref": "#/components/schemas/SemanticLayerFilterTypes" + "SqlRunnerBody": { + "properties": { + "limit": { + "type": "number", + "format": "double" }, - { - "properties": { - "or": { - "items": { - "$ref": "#/components/schemas/SemanticLayerFilter" - }, - "type": "array" - }, - "and": { - "items": { - "$ref": "#/components/schemas/SemanticLayerFilter" - }, - "type": "array" - } - }, - "type": "object" + "sql": { + "type": "string" } - ] + }, + "required": ["sql"], + "type": "object" }, - "Pick_SemanticLayerField.name-or-kind_": { + "VizIndexType": { + "enum": ["time", "category"], + "type": "string" + }, + "PivotIndexColum": { "properties": { - "name": { - "type": "string" + "type": { + "$ref": "#/components/schemas/VizIndexType" }, - "kind": { - "$ref": "#/components/schemas/FieldType" + "reference": { + "type": "string" } }, - "required": ["name", "kind"], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" + "required": ["type", "reference"], + "type": "object" + }, + "VizAggregationOptions": { + "enum": ["sum", "count", "avg", "min", "max", "any"], + "type": "string" }, - "SemanticLayerSortByDirection": { + "SortByDirection": { "enum": ["ASC", "DESC"], "type": "string" }, - "SemanticLayerSortBy": { - "allOf": [ - { - "$ref": "#/components/schemas/Pick_SemanticLayerField.name-or-kind_" + "VizSortBy": { + "properties": { + "direction": { + "$ref": "#/components/schemas/SortByDirection" }, - { - "properties": { - "direction": { - "$ref": "#/components/schemas/SemanticLayerSortByDirection" - } - }, - "required": ["direction"], - "type": "object" + "reference": { + "type": "string" } - ] + }, + "required": ["direction", "reference"], + "type": "object" }, - "SemanticLayerPivot": { + "ApiSqlRunnerPivotQueryPayload": { "properties": { - "values": { + "sortBy": { "items": { - "type": "string" + "$ref": "#/components/schemas/VizSortBy" }, "type": "array" }, - "index": { + "groupByColumns": { "items": { - "type": "string" + "properties": { + "reference": { + "type": "string" + } + }, + "required": ["reference"], + "type": "object" }, "type": "array" }, - "on": { + "valuesColumns": { "items": { - "type": "string" + "properties": { + "aggregation": { + "$ref": "#/components/schemas/VizAggregationOptions" + }, + "reference": { + "type": "string" + } + }, + "required": ["aggregation", "reference"], + "type": "object" }, "type": "array" + }, + "indexColumn": { + "$ref": "#/components/schemas/PivotIndexColum" + }, + "savedSqlUuid": { + "type": "string" } }, - "required": ["values", "index", "on"], + "required": ["valuesColumns", "indexColumn"], "type": "object" }, - "SemanticLayerQuery": { - "properties": { - "timezone": { - "type": "string" - }, - "limit": { - "type": "number", - "format": "double" + "SqlRunnerPivotQueryBody": { + "allOf": [ + { + "$ref": "#/components/schemas/SqlRunnerBody" }, - "pivot": { - "$ref": "#/components/schemas/SemanticLayerPivot" + { + "$ref": "#/components/schemas/ApiSqlRunnerPivotQueryPayload" + } + ] + }, + "VizBaseConfig": { + "properties": { + "type": { + "$ref": "#/components/schemas/ChartKind" }, - "sortBy": { - "items": { - "$ref": "#/components/schemas/SemanticLayerSortBy" + "metadata": { + "properties": { + "version": { + "type": "number", + "format": "double" + } }, - "type": "array" - }, - "filters": { + "required": ["version"], + "type": "object" + } + }, + "required": ["type", "metadata"], + "type": "object" + }, + "ChartKind.VERTICAL_BAR": { + "enum": ["vertical_bar"], + "type": "string" + }, + "ChartKind.LINE": { + "enum": ["line"], + "type": "string" + }, + "PivotChartLayout": { + "properties": { + "sortBy": { "items": { - "$ref": "#/components/schemas/SemanticLayerFilter" + "$ref": "#/components/schemas/VizSortBy" }, "type": "array" }, - "metrics": { + "groupBy": { "items": { - "$ref": "#/components/schemas/Pick_SemanticLayerField.name_" + "properties": { + "reference": { + "type": "string" + } + }, + "required": ["reference"], + "type": "object" }, "type": "array" }, - "timeDimensions": { + "y": { "items": { - "$ref": "#/components/schemas/Pick_SemanticLayerTimeDimension.name-or-granularity_" + "properties": { + "aggregation": { + "$ref": "#/components/schemas/VizAggregationOptions" + }, + "reference": { + "type": "string" + } + }, + "required": ["aggregation", "reference"], + "type": "object" }, "type": "array" }, - "dimensions": { - "items": { - "$ref": "#/components/schemas/Pick_SemanticLayerField.name_" + "x": { + "properties": { + "type": { + "$ref": "#/components/schemas/VizIndexType" + }, + "reference": { + "type": "string" + } }, - "type": "array" + "required": ["type", "reference"], + "type": "object" } }, - "required": [ - "sortBy", - "filters", - "metrics", - "timeDimensions", - "dimensions" - ], + "required": ["y"], "type": "object" }, - "SemanticViewerChartCreateResult": { - "properties": { - "slug": { - "type": "string" - }, - "savedSemanticViewerChartUuid": { - "type": "string" - } - }, - "required": ["slug", "savedSemanticViewerChartUuid"], - "type": "object" + "CartesianSeriesType.LINE": { + "enum": ["line"], + "type": "string" }, - "ApiSemanticViewerChartCreate": { - "properties": { - "results": { - "$ref": "#/components/schemas/SemanticViewerChartCreateResult" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "CartesianSeriesType.BAR": { + "enum": ["bar"], + "type": "string" }, - "SemanticViewerChartCreate": { + "ValueLabelPositionOptions": { + "enum": ["hidden", "top", "bottom", "left", "right", "inside"], + "type": "string" + }, + "CartesianChartDisplay": { "properties": { - "spaceUuid": { - "type": "string" - }, - "config": { - "$ref": "#/components/schemas/VizChartConfig" + "stack": { + "type": "boolean" }, - "semanticLayerQuery": { - "$ref": "#/components/schemas/SemanticLayerQuery" + "legend": { + "properties": { + "align": { + "type": "string", + "enum": ["start", "center", "end"] + }, + "position": { + "type": "string", + "enum": ["top", "bottom", "left", "right"] + } + }, + "required": ["align", "position"], + "type": "object" }, - "semanticLayerView": { - "type": "string", - "nullable": true + "series": { + "properties": {}, + "additionalProperties": { + "properties": { + "whichYAxis": { + "type": "number", + "format": "double" + }, + "valueLabelPosition": { + "$ref": "#/components/schemas/ValueLabelPositionOptions" + }, + "type": { + "anyOf": [ + { + "$ref": "#/components/schemas/CartesianSeriesType.LINE" + }, + { + "$ref": "#/components/schemas/CartesianSeriesType.BAR" + } + ] + }, + "color": { + "type": "string" + }, + "yAxisIndex": { + "type": "number", + "format": "double" + }, + "format": { + "$ref": "#/components/schemas/Format" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": "object" }, - "description": { - "type": "string", - "nullable": true + "yAxis": { + "items": { + "properties": { + "format": { + "$ref": "#/components/schemas/Format" + }, + "position": { + "type": "string" + }, + "label": { + "type": "string" + } + }, + "type": "object" + }, + "type": "array" }, - "name": { - "type": "string" + "xAxis": { + "properties": { + "type": { + "$ref": "#/components/schemas/VizIndexType" + }, + "label": { + "type": "string" + } + }, + "type": "object" } }, - "required": [ - "spaceUuid", - "config", - "semanticLayerQuery", - "semanticLayerView", - "description", - "name" - ], "type": "object" }, - "AllVizChartConfig": { - "anyOf": [ - { - "$ref": "#/components/schemas/VizBarChartConfig" - }, - { - "$ref": "#/components/schemas/VizLineChartConfig" - }, + "VizCartesianChartConfig": { + "allOf": [ { - "$ref": "#/components/schemas/VizPieChartConfig" + "$ref": "#/components/schemas/VizBaseConfig" }, { - "$ref": "#/components/schemas/VizTableConfig" - } - ] - }, - "SavedSemanticViewerChart": { - "properties": { - "lastViewedAt": { - "type": "string", - "format": "date-time" - }, - "firstViewedAt": { - "type": "string", - "format": "date-time" - }, - "views": { - "type": "number", + "properties": { + "display": { + "$ref": "#/components/schemas/CartesianChartDisplay" + }, + "fieldConfig": { + "$ref": "#/components/schemas/PivotChartLayout" + }, + "type": { + "anyOf": [ + { + "$ref": "#/components/schemas/ChartKind.VERTICAL_BAR" + }, + { + "$ref": "#/components/schemas/ChartKind.LINE" + } + ] + } + }, + "required": ["type"], + "type": "object" + } + ] + }, + "ChartKind.PIE": { + "enum": ["pie"], + "type": "string" + }, + "VizPieChartDisplay": { + "properties": { + "isDonut": { + "type": "boolean" + } + }, + "type": "object" + }, + "VizPieChartConfig": { + "allOf": [ + { + "$ref": "#/components/schemas/VizBaseConfig" + }, + { + "properties": { + "display": { + "$ref": "#/components/schemas/VizPieChartDisplay" + }, + "fieldConfig": { + "$ref": "#/components/schemas/PivotChartLayout" + }, + "type": { + "$ref": "#/components/schemas/ChartKind.PIE" + } + }, + "required": ["type"], + "type": "object" + } + ] + }, + "ChartKind.TABLE": { + "enum": ["table"], + "type": "string" + }, + "VizColumnConfig": { + "properties": { + "aggregation": { + "$ref": "#/components/schemas/VizAggregationOptions" + }, + "order": { + "type": "number", + "format": "double" + }, + "frozen": { + "type": "boolean" + }, + "label": { + "type": "string" + }, + "reference": { + "type": "string" + }, + "visible": { + "type": "boolean" + } + }, + "required": ["frozen", "label", "reference", "visible"], + "type": "object" + }, + "VizColumnsConfig": { + "properties": {}, + "additionalProperties": { + "$ref": "#/components/schemas/VizColumnConfig" + }, + "type": "object" + }, + "VizTableDisplay": { + "properties": {}, + "type": "object" + }, + "VizTableConfig": { + "allOf": [ + { + "$ref": "#/components/schemas/VizBaseConfig" + }, + { + "properties": { + "display": { + "$ref": "#/components/schemas/VizTableDisplay" + }, + "columns": { + "$ref": "#/components/schemas/VizColumnsConfig" + }, + "type": { + "$ref": "#/components/schemas/ChartKind.TABLE" + } + }, + "required": ["columns", "type"], + "type": "object" + } + ] + }, + "Pick_SpaceSummary.uuid-or-name-or-isPrivate-or-userAccess_": { + "properties": { + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + }, + "isPrivate": { + "type": "boolean" + }, + "userAccess": { + "$ref": "#/components/schemas/SpaceShare" + } + }, + "required": ["name", "uuid", "isPrivate"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Pick_Dashboard.uuid-or-name_": { + "properties": { + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": ["name", "uuid"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Pick_Project.projectUuid_": { + "properties": { + "projectUuid": { + "type": "string" + } + }, + "required": ["projectUuid"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Pick_Organization.organizationUuid_": { + "properties": { + "organizationUuid": { + "type": "string", + "description": "The unique identifier of the organization", + "format": "uuid" + } + }, + "required": ["organizationUuid"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "SqlChart": { + "properties": { + "lastViewedAt": { + "type": "string", + "format": "date-time" + }, + "firstViewedAt": { + "type": "string", + "format": "date-time" + }, + "views": { + "type": "number", "format": "double" }, "organization": { @@ -9758,15 +9670,32 @@ "chartKind": { "$ref": "#/components/schemas/ChartKind" }, - "semanticLayerQuery": { - "$ref": "#/components/schemas/SemanticLayerQuery" + "config": { + "allOf": [ + { + "$ref": "#/components/schemas/VizBaseConfig" + }, + { + "anyOf": [ + { + "$ref": "#/components/schemas/VizCartesianChartConfig" + }, + { + "$ref": "#/components/schemas/VizPieChartConfig" + }, + { + "$ref": "#/components/schemas/VizTableConfig" + } + ] + } + ] }, - "semanticLayerView": { - "type": "string", - "nullable": true + "limit": { + "type": "number", + "format": "double" }, - "config": { - "$ref": "#/components/schemas/AllVizChartConfig" + "sql": { + "type": "string" }, "slug": { "type": "string" @@ -9778,7 +9707,7 @@ "name": { "type": "string" }, - "savedSemanticViewerChartUuid": { + "savedSqlUuid": { "type": "string" } }, @@ -9795,20 +9724,20 @@ "createdBy", "createdAt", "chartKind", - "semanticLayerQuery", - "semanticLayerView", "config", + "limit", + "sql", "slug", "description", "name", - "savedSemanticViewerChartUuid" + "savedSqlUuid" ], "type": "object" }, - "ApiSemanticViewerChartGet": { + "ApiSqlChart": { "properties": { "results": { - "$ref": "#/components/schemas/SavedSemanticViewerChart" + "$ref": "#/components/schemas/SqlChart" }, "status": { "type": "string", @@ -9819,26 +9748,19 @@ "required": ["results", "status"], "type": "object" }, - "SemanticViewerChartUpdateResult": { - "properties": { - "savedSemanticViewerChartVersionUuid": { - "type": "string", - "nullable": true - }, - "savedSemanticViewerChartUuid": { - "type": "string" - } - }, - "required": [ - "savedSemanticViewerChartVersionUuid", - "savedSemanticViewerChartUuid" - ], - "type": "object" - }, - "ApiSemanticViewerChartUpdate": { + "ApiCreateSqlChart": { "properties": { "results": { - "$ref": "#/components/schemas/SemanticViewerChartUpdateResult" + "properties": { + "slug": { + "type": "string" + }, + "savedSqlUuid": { + "type": "string" + } + }, + "required": ["slug", "savedSqlUuid"], + "type": "object" }, "status": { "type": "string", @@ -9849,254 +9771,113 @@ "required": ["results", "status"], "type": "object" }, - "SemanticViewerChartUpdate": { - "properties": { - "versionedData": { - "properties": { - "chartKind": { - "$ref": "#/components/schemas/ChartKind" - }, - "config": { - "$ref": "#/components/schemas/VizChartConfig" - }, - "semanticLayerQuery": { - "$ref": "#/components/schemas/SemanticLayerQuery" - }, - "semanticLayerView": { - "type": "string", - "nullable": true - } - }, - "required": [ - "chartKind", - "config", - "semanticLayerQuery", - "semanticLayerView" - ], - "type": "object" + "VizBarChartConfig": { + "allOf": [ + { + "$ref": "#/components/schemas/VizBaseConfig" }, - "unversionedData": { + { "properties": { - "spaceUuid": { - "type": "string" + "display": { + "$ref": "#/components/schemas/CartesianChartDisplay" }, - "description": { - "type": "string", - "nullable": true + "fieldConfig": { + "$ref": "#/components/schemas/PivotChartLayout" }, - "name": { - "type": "string" + "type": { + "$ref": "#/components/schemas/ChartKind.VERTICAL_BAR" } }, - "required": ["spaceUuid", "description", "name"], + "required": ["type"], "type": "object" } - }, - "type": "object" - }, - "ValidationTarget": { - "enum": ["charts", "dashboards", "tables"], - "type": "string" - }, - "ValidationErrorType": { - "enum": [ - "chart", - "sorting", - "filter", - "metric", - "model", - "dimension", - "custom metric" - ], - "type": "string" - }, - "ValidationSourceType": { - "enum": ["chart", "dashboard", "table"], - "type": "string" - }, - "ValidationResponseBase": { - "properties": { - "source": { - "$ref": "#/components/schemas/ValidationSourceType" - }, - "spaceUuid": { - "type": "string" - }, - "projectUuid": { - "type": "string" - }, - "errorType": { - "$ref": "#/components/schemas/ValidationErrorType" - }, - "error": { - "type": "string" - }, - "name": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "validationId": { - "type": "number", - "format": "double" - } - }, - "required": [ - "projectUuid", - "errorType", - "error", - "name", - "createdAt", - "validationId" - ], - "type": "object" + ] }, - "ValidationErrorChartResponse": { + "VizLineChartConfig": { "allOf": [ { - "$ref": "#/components/schemas/ValidationResponseBase" + "$ref": "#/components/schemas/VizBaseConfig" }, { "properties": { - "chartName": { - "type": "string" - }, - "chartViews": { - "type": "number", - "format": "double" - }, - "lastUpdatedAt": { - "type": "string", - "format": "date-time" - }, - "lastUpdatedBy": { - "type": "string" - }, - "fieldName": { - "type": "string" + "display": { + "$ref": "#/components/schemas/CartesianChartDisplay" }, - "chartKind": { - "$ref": "#/components/schemas/ChartKind" + "fieldConfig": { + "$ref": "#/components/schemas/PivotChartLayout" }, - "chartUuid": { - "type": "string" + "type": { + "$ref": "#/components/schemas/ChartKind.LINE" } }, - "required": ["chartViews"], + "required": ["type"], "type": "object" } ] }, - "ValidationErrorDashboardResponse": { - "allOf": [ + "AllVizChartConfig": { + "anyOf": [ { - "$ref": "#/components/schemas/ValidationResponseBase" + "$ref": "#/components/schemas/VizBarChartConfig" }, { - "properties": { - "dashboardViews": { - "type": "number", - "format": "double" - }, - "lastUpdatedAt": { - "type": "string", - "format": "date-time" - }, - "lastUpdatedBy": { - "type": "string" - }, - "fieldName": { - "type": "string" - }, - "chartName": { - "type": "string" - }, - "dashboardUuid": { - "type": "string" - } - }, - "required": ["dashboardViews"], - "type": "object" + "$ref": "#/components/schemas/VizLineChartConfig" + }, + { + "$ref": "#/components/schemas/VizPieChartConfig" + }, + { + "$ref": "#/components/schemas/VizTableConfig" } ] }, - "Pick_ValidationResponseBase.Exclude_keyofValidationResponseBase.name__": { + "CreateSqlChart": { "properties": { "spaceUuid": { "type": "string" }, - "projectUuid": { - "type": "string" + "config": { + "$ref": "#/components/schemas/AllVizChartConfig" }, - "validationId": { + "limit": { "type": "number", "format": "double" }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "error": { + "sql": { "type": "string" }, - "errorType": { - "$ref": "#/components/schemas/ValidationErrorType" + "description": { + "type": "string", + "nullable": true }, - "source": { - "$ref": "#/components/schemas/ValidationSourceType" + "name": { + "type": "string" } }, "required": [ - "projectUuid", - "validationId", - "createdAt", - "error", - "errorType" + "spaceUuid", + "config", + "limit", + "sql", + "description", + "name" ], - "type": "object", - "description": "From T, pick a set of properties whose keys are in the union K" - }, - "Omit_ValidationResponseBase.name_": { - "$ref": "#/components/schemas/Pick_ValidationResponseBase.Exclude_keyofValidationResponseBase.name__", - "description": "Construct a type with the properties of T except for those in type K." + "type": "object" }, - "ValidationErrorTableResponse": { - "allOf": [ - { - "$ref": "#/components/schemas/Omit_ValidationResponseBase.name_" - }, - { + "ApiUpdateSqlChart": { + "properties": { + "results": { "properties": { - "name": { + "savedSqlVersionUuid": { + "type": "string", + "nullable": true + }, + "savedSqlUuid": { "type": "string" } }, + "required": ["savedSqlVersionUuid", "savedSqlUuid"], "type": "object" - } - ] - }, - "ValidationResponse": { - "anyOf": [ - { - "$ref": "#/components/schemas/ValidationErrorChartResponse" - }, - { - "$ref": "#/components/schemas/ValidationErrorDashboardResponse" - }, - { - "$ref": "#/components/schemas/ValidationErrorTableResponse" - } - ] - }, - "ApiValidateResponse": { - "properties": { - "results": { - "items": { - "$ref": "#/components/schemas/ValidationResponse" - }, - "type": "array" }, "status": { "type": "string", @@ -10107,50 +9888,3535 @@ "required": ["results", "status"], "type": "object" }, - "ApiValidationDismissResponse": { + "UpdateUnversionedSqlChart": { "properties": { - "status": { - "type": "string", - "enum": ["ok"], + "spaceUuid": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string" + } + }, + "required": ["spaceUuid", "description", "name"], + "type": "object" + }, + "UpdateVersionedSqlChart": { + "properties": { + "config": { + "$ref": "#/components/schemas/AllVizChartConfig" + }, + "limit": { + "type": "number", + "format": "double" + }, + "sql": { + "type": "string" + } + }, + "required": ["config", "limit", "sql"], + "type": "object" + }, + "UpdateSqlChart": { + "properties": { + "versionedData": { + "$ref": "#/components/schemas/UpdateVersionedSqlChart" + }, + "unversionedData": { + "$ref": "#/components/schemas/UpdateUnversionedSqlChart" + } + }, + "type": "object" + }, + "Pick_Explore.name_": { + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "ApiCreateVirtualView": { + "properties": { + "results": { + "$ref": "#/components/schemas/Pick_Explore.name_" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "VizColumn": { + "properties": { + "type": { + "$ref": "#/components/schemas/DimensionType" + }, + "reference": { + "type": "string" + } + }, + "required": ["reference"], + "type": "object" + }, + "CreateVirtualViewPayload": { + "properties": { + "columns": { + "items": { + "$ref": "#/components/schemas/VizColumn" + }, + "type": "array" + }, + "sql": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": ["columns", "sql", "name"], + "type": "object" + }, + "UpdateVirtualViewPayload": { + "$ref": "#/components/schemas/CreateVirtualViewPayload" + }, + "ApiGithubDbtWritePreview": { + "properties": { + "results": { + "properties": { + "owner": { + "type": "string" + }, + "files": { + "items": { + "type": "string" + }, + "type": "array" + }, + "path": { + "type": "string" + }, + "repo": { + "type": "string" + }, + "url": { + "type": "string" + } + }, + "required": ["owner", "files", "path", "repo", "url"], + "type": "object" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "ApiGithubDbtWriteBack": { + "properties": { + "results": { + "$ref": "#/components/schemas/PullRequestCreated" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "Pick_SshKeyPair.publicKey_": { + "properties": { + "publicKey": { + "type": "string" + } + }, + "required": ["publicKey"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "ApiSshKeyPairResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/Pick_SshKeyPair.publicKey_" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "UserAttributeValue": { + "properties": { + "value": { + "type": "string" + }, + "email": { + "type": "string" + }, + "userUuid": { + "type": "string" + } + }, + "required": ["value", "email", "userUuid"], + "type": "object" + }, + "GroupAttributeValue": { + "properties": { + "value": { + "type": "string" + }, + "groupUuid": { + "type": "string" + } + }, + "required": ["value", "groupUuid"], + "type": "object" + }, + "UserAttribute": { + "properties": { + "attributeDefault": { + "type": "string", + "nullable": true + }, + "groups": { + "items": { + "$ref": "#/components/schemas/GroupAttributeValue" + }, + "type": "array" + }, + "users": { + "items": { + "$ref": "#/components/schemas/UserAttributeValue" + }, + "type": "array" + }, + "description": { + "type": "string" + }, + "organizationUuid": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "uuid": { + "type": "string" + } + }, + "required": [ + "attributeDefault", + "groups", + "users", + "organizationUuid", + "name", + "createdAt", + "uuid" + ], + "type": "object" + }, + "ApiUserAttributesResponse": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/UserAttribute" + }, + "type": "array" + }, + "status": { + "type": "string", + "enum": ["ok"], "nullable": false } }, - "required": ["status"], - "type": "object" + "required": ["results", "status"], + "type": "object" + }, + "ApiCreateUserAttributeResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/UserAttribute" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "Pick_UserAttribute.name-or-description-or-attributeDefault_": { + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "attributeDefault": { + "type": "string", + "nullable": true + } + }, + "required": ["name", "attributeDefault"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Pick_UserAttributeValue.Exclude_keyofUserAttributeValue.email__": { + "properties": { + "userUuid": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "required": ["userUuid", "value"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Omit_UserAttributeValue.email_": { + "$ref": "#/components/schemas/Pick_UserAttributeValue.Exclude_keyofUserAttributeValue.email__", + "description": "Construct a type with the properties of T except for those in type K." + }, + "CreateUserAttributeValue": { + "$ref": "#/components/schemas/Omit_UserAttributeValue.email_" + }, + "CreateGroupAttributeValue": { + "$ref": "#/components/schemas/GroupAttributeValue" + }, + "CreateUserAttribute": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_UserAttribute.name-or-description-or-attributeDefault_" + }, + { + "properties": { + "groups": { + "items": { + "$ref": "#/components/schemas/CreateGroupAttributeValue" + }, + "type": "array" + }, + "users": { + "items": { + "$ref": "#/components/schemas/CreateUserAttributeValue" + }, + "type": "array" + } + }, + "required": ["groups", "users"], + "type": "object" + } + ] + }, + "LightdashUser": { + "properties": { + "userUuid": { + "type": "string" + }, + "email": { + "type": "string" + }, + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "organizationUuid": { + "type": "string" + }, + "organizationName": { + "type": "string" + }, + "organizationCreatedAt": { + "type": "string", + "format": "date-time" + }, + "isTrackingAnonymized": { + "type": "boolean" + }, + "isMarketingOptedIn": { + "type": "boolean" + }, + "isSetupComplete": { + "type": "boolean" + }, + "role": { + "$ref": "#/components/schemas/OrganizationMemberRole" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "type": "string", + "format": "date-time" + }, + "isActive": { + "type": "boolean", + "description": "Whether the user can login" + }, + "isPending": { + "type": "boolean", + "description": "Whether the user doesn't have an authentication method (password or openId)" + } + }, + "required": [ + "userUuid", + "firstName", + "lastName", + "isTrackingAnonymized", + "isMarketingOptedIn", + "isSetupComplete", + "createdAt", + "updatedAt", + "isActive" + ], + "type": "object", + "additionalProperties": true + }, + "ApiGetAuthenticatedUserResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/LightdashUser" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object", + "description": "Shows the authenticated user" + }, + "ApiRegisterUserResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/LightdashUser" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "ActivateUser": { + "properties": { + "password": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "firstName": { + "type": "string" + } + }, + "required": ["password", "lastName", "firstName"], + "type": "object" + }, + "ActivateUserWithInviteCode": { + "allOf": [ + { + "$ref": "#/components/schemas/ActivateUser" + }, + { + "properties": { + "inviteCode": { + "type": "string" + } + }, + "required": ["inviteCode"], + "type": "object" + } + ] + }, + "Email": { + "type": "string", + "description": "Email", + "pattern": "^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$" + }, + "CreateUserArgs": { + "properties": { + "password": { + "type": "string" + }, + "email": { + "$ref": "#/components/schemas/Email" + }, + "lastName": { + "type": "string" + }, + "firstName": { + "type": "string" + } + }, + "required": ["password", "email", "lastName", "firstName"], + "type": "object" + }, + "RegisterOrActivateUser": { + "anyOf": [ + { + "$ref": "#/components/schemas/ActivateUserWithInviteCode" + }, + { + "$ref": "#/components/schemas/CreateUserArgs" + } + ] + }, + "EmailOneTimePassword": { + "properties": { + "numberOfAttempts": { + "type": "number", + "format": "double", + "description": "Number of times the passcode has been attempted" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "description": "Time that the passcode was created" + } + }, + "required": ["numberOfAttempts", "createdAt"], + "type": "object" + }, + "EmailStatus": { + "properties": { + "otp": { + "$ref": "#/components/schemas/EmailOneTimePassword" + }, + "isVerified": { + "type": "boolean" + }, + "email": { + "type": "string" + } + }, + "required": ["isVerified", "email"], + "type": "object" + }, + "EmailOneTimePasswordExpiring": { + "allOf": [ + { + "$ref": "#/components/schemas/EmailOneTimePassword" + }, + { + "properties": { + "isMaxAttempts": { + "type": "boolean" + }, + "isExpired": { + "type": "boolean" + }, + "expiresAt": { + "type": "string", + "format": "date-time" + } + }, + "required": ["isMaxAttempts", "isExpired", "expiresAt"], + "type": "object" + } + ] + }, + "EmailStatusExpiring": { + "allOf": [ + { + "$ref": "#/components/schemas/EmailStatus" + }, + { + "properties": { + "otp": { + "$ref": "#/components/schemas/EmailOneTimePasswordExpiring", + "description": "One time passcode information\nIf there is no active passcode, this will be undefined" + } + }, + "type": "object" + } + ], + "description": "Verification status of an email address" + }, + "ApiEmailStatusResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/EmailStatusExpiring" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object", + "description": "Shows the current verification status of an email address" + }, + "UserAllowedOrganization": { + "properties": { + "membersCount": { + "type": "number", + "format": "double" + }, + "name": { + "type": "string" + }, + "organizationUuid": { + "type": "string" + } + }, + "required": ["membersCount", "name", "organizationUuid"], + "type": "object" + }, + "ApiUserAllowedOrganizationsResponse": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/UserAllowedOrganization" + }, + "type": "array" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "Pick_CreateRedshiftCredentials.type-or-user-or-password_": { + "properties": { + "type": { + "$ref": "#/components/schemas/WarehouseTypes.REDSHIFT" + }, + "user": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": ["type", "user", "password"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Pick_CreatePostgresCredentials.type-or-user-or-password_": { + "properties": { + "type": { + "$ref": "#/components/schemas/WarehouseTypes.POSTGRES" + }, + "user": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": ["type", "user", "password"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Pick_CreateSnowflakeCredentials.type-or-user-or-password_": { + "properties": { + "type": { + "$ref": "#/components/schemas/WarehouseTypes.SNOWFLAKE" + }, + "user": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": ["type", "user"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Pick_CreateTrinoCredentials.type-or-user-or-password_": { + "properties": { + "type": { + "$ref": "#/components/schemas/WarehouseTypes.TRINO" + }, + "user": { + "type": "string" + }, + "password": { + "type": "string" + } + }, + "required": ["type", "user", "password"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Pick_CreateBigqueryCredentials.type-or-keyfileContents_": { + "properties": { + "type": { + "$ref": "#/components/schemas/WarehouseTypes.BIGQUERY" + }, + "keyfileContents": { + "$ref": "#/components/schemas/Record_string.string_" + } + }, + "required": ["type", "keyfileContents"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Pick_CreateDatabricksCredentials.type-or-personalAccessToken_": { + "properties": { + "type": { + "$ref": "#/components/schemas/WarehouseTypes.DATABRICKS" + }, + "personalAccessToken": { + "type": "string" + } + }, + "required": ["type", "personalAccessToken"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "UpsertUserWarehouseCredentials": { + "properties": { + "credentials": { + "anyOf": [ + { + "$ref": "#/components/schemas/Pick_CreateRedshiftCredentials.type-or-user-or-password_" + }, + { + "$ref": "#/components/schemas/Pick_CreatePostgresCredentials.type-or-user-or-password_" + }, + { + "$ref": "#/components/schemas/Pick_CreateSnowflakeCredentials.type-or-user-or-password_" + }, + { + "$ref": "#/components/schemas/Pick_CreateTrinoCredentials.type-or-user-or-password_" + }, + { + "$ref": "#/components/schemas/Pick_CreateBigqueryCredentials.type-or-keyfileContents_" + }, + { + "$ref": "#/components/schemas/Pick_CreateDatabricksCredentials.type-or-personalAccessToken_" + } + ] + }, + "name": { + "type": "string" + } + }, + "required": ["credentials", "name"], + "type": "object" + }, + "OpenIdIdentityIssuerType": { + "enum": ["google", "okta", "oneLogin", "azuread", "oidc"], + "type": "string" + }, + "LocalIssuerTypes": { + "enum": ["email", "apiToken"], + "type": "string" + }, + "LoginOptionTypes": { + "anyOf": [ + { + "$ref": "#/components/schemas/OpenIdIdentityIssuerType" + }, + { + "$ref": "#/components/schemas/LocalIssuerTypes" + } + ] + }, + "LoginOptions": { + "properties": { + "redirectUri": { + "type": "string" + }, + "forceRedirect": { + "type": "boolean" + }, + "showOptions": { + "items": { + "$ref": "#/components/schemas/LoginOptionTypes" + }, + "type": "array" + } + }, + "required": ["showOptions"], + "type": "object" + }, + "ApiGetLoginOptionsResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/LoginOptions" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "PersonalAccessToken": { + "properties": { + "description": { + "type": "string" + }, + "expiresAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "rotatedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastUsedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "uuid": { + "type": "string" + } + }, + "required": [ + "description", + "expiresAt", + "rotatedAt", + "lastUsedAt", + "createdAt", + "uuid" + ], + "type": "object" + }, + "PersonalAccessTokenWithToken": { + "allOf": [ + { + "$ref": "#/components/schemas/PersonalAccessToken" + }, + { + "properties": { + "token": { + "type": "string" + } + }, + "required": ["token"], + "type": "object" + } + ] + }, + "ContentType.CHART": { + "enum": ["chart"], + "type": "string" + }, + "ContentType": { + "enum": ["chart", "dashboard"], + "type": "string" + }, + "ChartContent": { + "properties": { + "contentType": { + "$ref": "#/components/schemas/ContentType.CHART" + }, + "uuid": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "properties": { + "lastName": { + "type": "string" + }, + "firstName": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": ["lastName", "firstName", "uuid"], + "type": "object", + "nullable": true + }, + "lastUpdatedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastUpdatedBy": { + "properties": { + "lastName": { + "type": "string" + }, + "firstName": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": ["lastName", "firstName", "uuid"], + "type": "object", + "nullable": true + }, + "project": { + "properties": { + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": ["name", "uuid"], + "type": "object" + }, + "organization": { + "properties": { + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": ["name", "uuid"], + "type": "object" + }, + "space": { + "properties": { + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": ["name", "uuid"], + "type": "object" + }, + "pinnedList": { + "properties": { + "uuid": { + "type": "string" + } + }, + "required": ["uuid"], + "type": "object", + "nullable": true + }, + "views": { + "type": "number", + "format": "double" + }, + "firstViewedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "source": { + "$ref": "#/components/schemas/ChartSourceType" + }, + "chartKind": { + "$ref": "#/components/schemas/ChartKind" + }, + "dashboard": { + "properties": { + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": ["name", "uuid"], + "type": "object", + "nullable": true + } + }, + "required": [ + "contentType", + "uuid", + "slug", + "name", + "description", + "createdAt", + "createdBy", + "lastUpdatedAt", + "lastUpdatedBy", + "project", + "organization", + "space", + "pinnedList", + "views", + "firstViewedAt", + "source", + "chartKind", + "dashboard" + ], + "type": "object", + "additionalProperties": true + }, + "ContentType.DASHBOARD": { + "enum": ["dashboard"], + "type": "string" + }, + "DashboardContent": { + "properties": { + "contentType": { + "$ref": "#/components/schemas/ContentType.DASHBOARD" + }, + "uuid": { + "type": "string" + }, + "slug": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "properties": { + "lastName": { + "type": "string" + }, + "firstName": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": ["lastName", "firstName", "uuid"], + "type": "object", + "nullable": true + }, + "lastUpdatedAt": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "lastUpdatedBy": { + "properties": { + "lastName": { + "type": "string" + }, + "firstName": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": ["lastName", "firstName", "uuid"], + "type": "object", + "nullable": true + }, + "project": { + "properties": { + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": ["name", "uuid"], + "type": "object" + }, + "organization": { + "properties": { + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": ["name", "uuid"], + "type": "object" + }, + "space": { + "properties": { + "name": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": ["name", "uuid"], + "type": "object" + }, + "pinnedList": { + "properties": { + "uuid": { + "type": "string" + } + }, + "required": ["uuid"], + "type": "object", + "nullable": true + }, + "views": { + "type": "number", + "format": "double" + }, + "firstViewedAt": { + "type": "string", + "format": "date-time", + "nullable": true + } + }, + "required": [ + "contentType", + "uuid", + "slug", + "name", + "description", + "createdAt", + "createdBy", + "lastUpdatedAt", + "lastUpdatedBy", + "project", + "organization", + "space", + "pinnedList", + "views", + "firstViewedAt" + ], + "type": "object", + "additionalProperties": true + }, + "SummaryContent": { + "anyOf": [ + { + "$ref": "#/components/schemas/ChartContent" + }, + { + "$ref": "#/components/schemas/DashboardContent" + } + ] + }, + "KnexPaginatedData_SummaryContent-Array_": { + "properties": { + "pagination": { + "allOf": [ + { + "$ref": "#/components/schemas/KnexPaginateArgs" + }, + { + "properties": { + "totalResults": { + "type": "number", + "format": "double" + }, + "totalPageCount": { + "type": "number", + "format": "double" + } + }, + "required": ["totalResults", "totalPageCount"], + "type": "object" + } + ] + }, + "data": { + "items": { + "$ref": "#/components/schemas/SummaryContent" + }, + "type": "array" + } + }, + "required": ["data"], + "type": "object" + }, + "ApiContentResponse": { + "properties": { + "results": { + "$ref": "#/components/schemas/KnexPaginatedData_SummaryContent-Array_" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "SemanticLayerClientInfo": { + "properties": { + "name": { + "type": "string" + }, + "features": { + "properties": { + "views": { + "type": "boolean" + } + }, + "required": ["views"], + "type": "object" + }, + "config": { + "properties": { + "maxQueryLimit": { + "type": "number", + "format": "double" + } + }, + "required": ["maxQueryLimit"], + "type": "object" + } + }, + "required": ["name", "features", "config"], + "type": "object", + "additionalProperties": true + }, + "ApiSemanticLayerClientInfo": { + "properties": { + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + }, + "results": { + "allOf": [ + { + "$ref": "#/components/schemas/SemanticLayerClientInfo" + } + ], + "nullable": true + } + }, + "required": ["status", "results"], + "type": "object", + "additionalProperties": true + }, + "SemanticLayerView": { + "properties": { + "visible": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "label": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": ["visible", "label", "name"], + "type": "object" + }, + "SemanticLayerFieldType": { + "enum": ["time", "number", "string", "boolean"], + "type": "string" + }, + "SemanticLayerTimeGranularity": { + "enum": [ + "NANOSECOND", + "MICROSECOND", + "MILLISECOND", + "SECOND", + "MINUTE", + "HOUR", + "DAY", + "WEEK", + "MONTH", + "QUARTER", + "YEAR" + ], + "type": "string" + }, + "SemanticLayerFilterBaseOperator": { + "enum": ["IS", "IS_NOT"], + "type": "string" + }, + "SemanticLayerField": { + "properties": { + "availableOperators": { + "items": { + "$ref": "#/components/schemas/SemanticLayerFilterBaseOperator" + }, + "type": "array" + }, + "availableGranularities": { + "items": { + "$ref": "#/components/schemas/SemanticLayerTimeGranularity" + }, + "type": "array" + }, + "aggType": { + "$ref": "#/components/schemas/VizAggregationOptions" + }, + "visible": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "kind": { + "$ref": "#/components/schemas/FieldType" + }, + "type": { + "$ref": "#/components/schemas/SemanticLayerFieldType" + }, + "label": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "availableOperators", + "availableGranularities", + "visible", + "kind", + "type", + "label", + "name" + ], + "type": "object" + }, + "Pick_SemanticLayerField.name_": { + "properties": { + "name": { + "type": "string" + } + }, + "required": ["name"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Pick_SemanticLayerTimeDimension.name-or-granularity_": { + "properties": { + "name": { + "type": "string" + }, + "granularity": { + "$ref": "#/components/schemas/SemanticLayerTimeGranularity" + } + }, + "required": ["name"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Pick_SemanticLayerQuery.dimensions-or-timeDimensions-or-metrics_": { + "properties": { + "dimensions": { + "items": { + "$ref": "#/components/schemas/Pick_SemanticLayerField.name_" + }, + "type": "array" + }, + "timeDimensions": { + "items": { + "$ref": "#/components/schemas/Pick_SemanticLayerTimeDimension.name-or-granularity_" + }, + "type": "array" + }, + "metrics": { + "items": { + "$ref": "#/components/schemas/Pick_SemanticLayerField.name_" + }, + "type": "array" + } + }, + "required": ["dimensions", "timeDimensions", "metrics"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Pick_SemanticLayerField.name-or-kind_": { + "properties": { + "name": { + "type": "string" + }, + "kind": { + "$ref": "#/components/schemas/FieldType" + } + }, + "required": ["name", "kind"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "SemanticLayerSortBy": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_SemanticLayerField.name-or-kind_" + }, + { + "properties": { + "direction": { + "$ref": "#/components/schemas/SortByDirection" + } + }, + "required": ["direction"], + "type": "object" + } + ] + }, + "SemanticLayerPivot": { + "properties": { + "values": { + "items": { + "type": "string" + }, + "type": "array" + }, + "index": { + "items": { + "type": "string" + }, + "type": "array" + }, + "on": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": ["values", "index", "on"], + "type": "object" + }, + "SemanticLayerFilterBase": { + "properties": { + "fieldType": { + "$ref": "#/components/schemas/SemanticLayerFieldType" + }, + "fieldKind": { + "$ref": "#/components/schemas/FieldType" + }, + "fieldRef": { + "type": "string" + }, + "uuid": { + "type": "string" + } + }, + "required": ["fieldType", "fieldKind", "fieldRef", "uuid"], + "type": "object" + }, + "SemanticLayerFieldType.STRING": { + "enum": ["string"], + "type": "string" + }, + "SemanticLayerStringFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/SemanticLayerFilterBase" + }, + { + "properties": { + "values": { + "items": { + "type": "string" + }, + "type": "array" + }, + "operator": { + "$ref": "#/components/schemas/SemanticLayerFilterBaseOperator" + }, + "fieldType": { + "$ref": "#/components/schemas/SemanticLayerFieldType.STRING" + } + }, + "required": ["values", "operator", "fieldType"], + "type": "object" + } + ] + }, + "SemanticLayerFieldType.TIME": { + "enum": ["time"], + "type": "string" + }, + "SemanticLayerExactTimeFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/SemanticLayerFilterBase" + }, + { + "properties": { + "values": { + "properties": { + "time": { + "type": "string" + } + }, + "required": ["time"], + "type": "object" + }, + "operator": { + "$ref": "#/components/schemas/SemanticLayerFilterBaseOperator" + }, + "fieldType": { + "$ref": "#/components/schemas/SemanticLayerFieldType.TIME" + } + }, + "required": ["values", "operator", "fieldType"], + "type": "object" + } + ] + }, + "SemanticLayerFilterRelativeTimeValue": { + "enum": ["TODAY", "YESTERDAY", "LAST_7_DAYS", "LAST_30_DAYS"], + "type": "string" + }, + "SemanticLayerRelativeTimeFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/SemanticLayerFilterBase" + }, + { + "properties": { + "values": { + "properties": { + "relativeTime": { + "$ref": "#/components/schemas/SemanticLayerFilterRelativeTimeValue" + } + }, + "required": ["relativeTime"], + "type": "object" + }, + "operator": { + "$ref": "#/components/schemas/SemanticLayerFilterBaseOperator" + }, + "fieldType": { + "$ref": "#/components/schemas/SemanticLayerFieldType.TIME" + } + }, + "required": ["values", "operator", "fieldType"], + "type": "object" + } + ] + }, + "SemanticLayerTimeFilter": { + "anyOf": [ + { + "$ref": "#/components/schemas/SemanticLayerExactTimeFilter" + }, + { + "$ref": "#/components/schemas/SemanticLayerRelativeTimeFilter" + } + ] + }, + "SemanticLayerFilterTypes": { + "anyOf": [ + { + "$ref": "#/components/schemas/SemanticLayerStringFilter" + }, + { + "$ref": "#/components/schemas/SemanticLayerTimeFilter" + } + ] + }, + "SemanticLayerFilter": { + "allOf": [ + { + "$ref": "#/components/schemas/SemanticLayerFilterTypes" + }, + { + "properties": { + "or": { + "items": { + "$ref": "#/components/schemas/SemanticLayerFilter" + }, + "type": "array" + }, + "and": { + "items": { + "$ref": "#/components/schemas/SemanticLayerFilter" + }, + "type": "array" + } + }, + "type": "object" + } + ] + }, + "Pick_SemanticLayerField.name-or-aggType_": { + "properties": { + "name": { + "type": "string" + }, + "aggType": { + "$ref": "#/components/schemas/VizAggregationOptions" + } + }, + "required": ["name"], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "SemanticLayerQuery": { + "properties": { + "customMetrics": { + "items": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_SemanticLayerField.name-or-aggType_" + }, + { + "properties": { + "baseDimension": { + "type": "string" + } + }, + "type": "object" + } + ] + }, + "type": "array" + }, + "sql": { + "type": "string" + }, + "filters": { + "items": { + "$ref": "#/components/schemas/SemanticLayerFilter" + }, + "type": "array" + }, + "pivot": { + "$ref": "#/components/schemas/SemanticLayerPivot" + }, + "timezone": { + "type": "string" + }, + "limit": { + "type": "number", + "format": "double" + }, + "sortBy": { + "items": { + "$ref": "#/components/schemas/SemanticLayerSortBy" + }, + "type": "array" + }, + "metrics": { + "items": { + "$ref": "#/components/schemas/Pick_SemanticLayerField.name_" + }, + "type": "array" + }, + "timeDimensions": { + "items": { + "$ref": "#/components/schemas/Pick_SemanticLayerTimeDimension.name-or-granularity_" + }, + "type": "array" + }, + "dimensions": { + "items": { + "$ref": "#/components/schemas/Pick_SemanticLayerField.name_" + }, + "type": "array" + } + }, + "required": [ + "filters", + "sortBy", + "metrics", + "timeDimensions", + "dimensions" + ], + "type": "object" + }, + "SemanticViewerChartCreateResult": { + "properties": { + "slug": { + "type": "string" + }, + "savedSemanticViewerChartUuid": { + "type": "string" + } + }, + "required": ["slug", "savedSemanticViewerChartUuid"], + "type": "object" + }, + "ApiSemanticViewerChartCreate": { + "properties": { + "results": { + "$ref": "#/components/schemas/SemanticViewerChartCreateResult" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "SemanticViewerChartCreate": { + "properties": { + "spaceUuid": { + "type": "string" + }, + "config": { + "$ref": "#/components/schemas/AllVizChartConfig" + }, + "semanticLayerQuery": { + "$ref": "#/components/schemas/SemanticLayerQuery" + }, + "semanticLayerView": { + "type": "string", + "nullable": true + }, + "description": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string" + } + }, + "required": [ + "spaceUuid", + "config", + "semanticLayerQuery", + "semanticLayerView", + "description", + "name" + ], + "type": "object" + }, + "SavedSemanticViewerChart": { + "properties": { + "lastViewedAt": { + "type": "string", + "format": "date-time" + }, + "firstViewedAt": { + "type": "string", + "format": "date-time" + }, + "views": { + "type": "number", + "format": "double" + }, + "organization": { + "$ref": "#/components/schemas/Pick_Organization.organizationUuid_" + }, + "project": { + "$ref": "#/components/schemas/Pick_Project.projectUuid_" + }, + "dashboard": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_Dashboard.uuid-or-name_" + } + ], + "nullable": true + }, + "space": { + "$ref": "#/components/schemas/Pick_SpaceSummary.uuid-or-name-or-isPrivate-or-userAccess_" + }, + "lastUpdatedBy": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_LightdashUser.userUuid-or-firstName-or-lastName_" + } + ], + "nullable": true + }, + "lastUpdatedAt": { + "type": "string", + "format": "date-time" + }, + "createdBy": { + "allOf": [ + { + "$ref": "#/components/schemas/Pick_LightdashUser.userUuid-or-firstName-or-lastName_" + } + ], + "nullable": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "chartKind": { + "$ref": "#/components/schemas/ChartKind" + }, + "semanticLayerQuery": { + "$ref": "#/components/schemas/SemanticLayerQuery" + }, + "semanticLayerView": { + "type": "string", + "nullable": true + }, + "config": { + "$ref": "#/components/schemas/AllVizChartConfig" + }, + "slug": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string" + }, + "savedSemanticViewerChartUuid": { + "type": "string" + } + }, + "required": [ + "lastViewedAt", + "firstViewedAt", + "views", + "organization", + "project", + "dashboard", + "space", + "lastUpdatedBy", + "lastUpdatedAt", + "createdBy", + "createdAt", + "chartKind", + "semanticLayerQuery", + "semanticLayerView", + "config", + "slug", + "description", + "name", + "savedSemanticViewerChartUuid" + ], + "type": "object" + }, + "ApiSemanticViewerChartGet": { + "properties": { + "results": { + "$ref": "#/components/schemas/SavedSemanticViewerChart" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "SemanticViewerChartUpdateResult": { + "properties": { + "savedSemanticViewerChartVersionUuid": { + "type": "string", + "nullable": true + }, + "savedSemanticViewerChartUuid": { + "type": "string" + } + }, + "required": [ + "savedSemanticViewerChartVersionUuid", + "savedSemanticViewerChartUuid" + ], + "type": "object" + }, + "ApiSemanticViewerChartUpdate": { + "properties": { + "results": { + "$ref": "#/components/schemas/SemanticViewerChartUpdateResult" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "SemanticViewerChartUpdate": { + "properties": { + "versionedData": { + "properties": { + "chartKind": { + "$ref": "#/components/schemas/ChartKind" + }, + "config": { + "$ref": "#/components/schemas/AllVizChartConfig" + }, + "semanticLayerQuery": { + "$ref": "#/components/schemas/SemanticLayerQuery" + }, + "semanticLayerView": { + "type": "string", + "nullable": true + } + }, + "required": [ + "chartKind", + "config", + "semanticLayerQuery", + "semanticLayerView" + ], + "type": "object" + }, + "unversionedData": { + "properties": { + "spaceUuid": { + "type": "string" + }, + "description": { + "type": "string", + "nullable": true + }, + "name": { + "type": "string" + } + }, + "required": ["spaceUuid", "description", "name"], + "type": "object" + } + }, + "type": "object" + }, + "ValidationTarget": { + "enum": ["charts", "dashboards", "tables"], + "type": "string" + }, + "ValidationErrorType": { + "enum": [ + "chart", + "sorting", + "filter", + "metric", + "model", + "dimension", + "custom metric" + ], + "type": "string" + }, + "ValidationSourceType": { + "enum": ["chart", "dashboard", "table"], + "type": "string" + }, + "ValidationResponseBase": { + "properties": { + "source": { + "$ref": "#/components/schemas/ValidationSourceType" + }, + "spaceUuid": { + "type": "string" + }, + "projectUuid": { + "type": "string" + }, + "errorType": { + "$ref": "#/components/schemas/ValidationErrorType" + }, + "error": { + "type": "string" + }, + "name": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "validationId": { + "type": "number", + "format": "double" + } + }, + "required": [ + "projectUuid", + "errorType", + "error", + "name", + "createdAt", + "validationId" + ], + "type": "object" + }, + "ValidationErrorChartResponse": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidationResponseBase" + }, + { + "properties": { + "chartName": { + "type": "string" + }, + "chartViews": { + "type": "number", + "format": "double" + }, + "lastUpdatedAt": { + "type": "string", + "format": "date-time" + }, + "lastUpdatedBy": { + "type": "string" + }, + "fieldName": { + "type": "string" + }, + "chartKind": { + "$ref": "#/components/schemas/ChartKind" + }, + "chartUuid": { + "type": "string" + } + }, + "required": ["chartViews"], + "type": "object" + } + ] + }, + "ValidationErrorDashboardResponse": { + "allOf": [ + { + "$ref": "#/components/schemas/ValidationResponseBase" + }, + { + "properties": { + "dashboardViews": { + "type": "number", + "format": "double" + }, + "lastUpdatedAt": { + "type": "string", + "format": "date-time" + }, + "lastUpdatedBy": { + "type": "string" + }, + "fieldName": { + "type": "string" + }, + "chartName": { + "type": "string" + }, + "dashboardUuid": { + "type": "string" + } + }, + "required": ["dashboardViews"], + "type": "object" + } + ] + }, + "Pick_ValidationResponseBase.Exclude_keyofValidationResponseBase.name__": { + "properties": { + "spaceUuid": { + "type": "string" + }, + "projectUuid": { + "type": "string" + }, + "validationId": { + "type": "number", + "format": "double" + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "error": { + "type": "string" + }, + "errorType": { + "$ref": "#/components/schemas/ValidationErrorType" + }, + "source": { + "$ref": "#/components/schemas/ValidationSourceType" + } + }, + "required": [ + "projectUuid", + "validationId", + "createdAt", + "error", + "errorType" + ], + "type": "object", + "description": "From T, pick a set of properties whose keys are in the union K" + }, + "Omit_ValidationResponseBase.name_": { + "$ref": "#/components/schemas/Pick_ValidationResponseBase.Exclude_keyofValidationResponseBase.name__", + "description": "Construct a type with the properties of T except for those in type K." + }, + "ValidationErrorTableResponse": { + "allOf": [ + { + "$ref": "#/components/schemas/Omit_ValidationResponseBase.name_" + }, + { + "properties": { + "name": { + "type": "string" + } + }, + "type": "object" + } + ] + }, + "ValidationResponse": { + "anyOf": [ + { + "$ref": "#/components/schemas/ValidationErrorChartResponse" + }, + { + "$ref": "#/components/schemas/ValidationErrorDashboardResponse" + }, + { + "$ref": "#/components/schemas/ValidationErrorTableResponse" + } + ] + }, + "ApiValidateResponse": { + "properties": { + "results": { + "items": { + "$ref": "#/components/schemas/ValidationResponse" + }, + "type": "array" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + }, + "ApiValidationDismissResponse": { + "properties": { + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["status"], + "type": "object" + } + }, + "securitySchemes": { + "session_cookie": { + "type": "apiKey", + "in": "cookie", + "name": "connect.sid" + }, + "api_key": { + "type": "apiKey", + "in": "header", + "name": "Authorization", + "description": "Value should be 'ApiKey '" + } + } + }, + "info": { + "title": "Lightdash API", + "version": "0.1398.0", + "description": "Open API documentation for all public Lightdash API endpoints. # Authentication Before you get started, you might need to create a Personal Access Token to authenticate via the API. You can create a token by following this guide: https://docs.lightdash.com/references/personal_tokens\n", + "license": { + "name": "MIT" + }, + "contact": { + "name": "Lightdash Support", + "email": "support@lightdash.com", + "url": "https://docs.lightdash.com/help-and-contact/contact/contact_info/" + } + }, + "openapi": "3.0.0", + "paths": { + "/api/v1/projects/{projectUuid}/dataCatalog": { + "get": { + "operationId": "getCatalog", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "$ref": "#/components/schemas/ApiCatalogResults" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get catalog items", + "tags": ["Catalog"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "type", + "required": false, + "schema": { + "$ref": "#/components/schemas/CatalogType" + } + }, + { + "in": "query", + "name": "filter", + "required": false, + "schema": { + "$ref": "#/components/schemas/CatalogFilter" + } + } + ] + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/{table}/metadata": { + "get": { + "operationId": "getMetadata", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "$ref": "#/components/schemas/ApiCatalogMetadataResults" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get catalog metadata for tables", + "tags": ["Catalog"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Table name to get metadata for", + "in": "path", + "name": "table", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/{table}/analytics": { + "get": { + "operationId": "getAnalytics", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "$ref": "#/components/schemas/ApiCatalogAnalyticsResults" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get catalog analytics for tables", + "tags": ["Catalog"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Table name to get analytics for", + "in": "path", + "name": "table", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/{table}/analytics/{field}": { + "get": { + "operationId": "getAnalyticsField", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "$ref": "#/components/schemas/ApiCatalogAnalyticsResults" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get catalog analytics for fields", + "tags": ["Catalog"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Table where this field belongs", + "in": "path", + "name": "table", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "Field name to get analytics for", + "in": "path", + "name": "field", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/metrics": { + "get": { + "operationId": "getMetricsCatalog", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiMetricsCatalog" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get metrics catalog", + "tags": ["Catalog"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "page", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, + { + "in": "query", + "name": "pageSize", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, + { + "in": "query", + "name": "sort", + "required": false, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "order", + "required": false, + "schema": { + "$ref": "#/components/schemas/ApiSortDirection" + } + }, + { + "in": "query", + "name": "categories", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ] + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/metrics/{tableName}/{metricName}": { + "get": { + "operationId": "getMetric", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiGetMetricPeek" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get metric by table and metric name", + "tags": ["Catalog"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "tableName", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "metricName", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/metrics-with-time-dimensions": { + "get": { + "operationId": "getMetricsWithTimeDimensions", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiMetricsWithAssociatedTimeDimensionResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get metrics with time dimensions", + "tags": ["Catalog"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/{catalogSearchUuid}/categories": { + "post": { + "operationId": "addCategoryToCatalogItem", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "tags": ["Catalog"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "catalogSearchUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "tagUuid": { + "type": "string" + } + }, + "required": ["tagUuid"], + "type": "object" + } + } + } + } + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/{catalogSearchUuid}/categories/{tagUuid}": { + "delete": { + "operationId": "removeCategoryFromCatalogItem", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "properties": { + "results": {}, + "status": { + "type": "string" + } + }, + "required": ["results", "status"], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "tags": ["Catalog"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "catalogSearchUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "tagUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/{catalogSearchUuid}/icon": { + "patch": { + "operationId": "updateCatalogItemIcon", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "tags": ["Catalog"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "catalogSearchUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "icon": { + "allOf": [ + { + "$ref": "#/components/schemas/CatalogItemIcon" + } + ], + "nullable": true + } + }, + "required": ["icon"], + "type": "object" + } + } + } + } + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/metrics/tree": { + "get": { + "operationId": "getMetricsTree", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiGetMetricsTree" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "tags": ["Catalog"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "query", + "name": "metricUuids", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + } + ] + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/metrics/tree/edges": { + "post": { + "operationId": "createMetricsTreeEdge", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "tags": ["Catalog"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiMetricsTreeEdgePayload" + } + } + } + } + } + }, + "/api/v1/projects/{projectUuid}/dataCatalog/metrics/tree/edges/{sourceCatalogSearchUuid}/{targetCatalogSearchUuid}": { + "delete": { + "operationId": "deleteMetricsTreeEdge", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "tags": ["Catalog"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "sourceCatalogSearchUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "targetCatalogSearchUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/comments/dashboards/{dashboardUuid}/{dashboardTileUuid}": { + "post": { + "operationId": "createComment", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiCreateComment" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Creates a comment on a dashboard tile", + "tags": ["Comments"], + "security": [], + "parameters": [ + { + "description": "the uuid of the dashboard", + "in": "path", + "name": "dashboardUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the uuid of the dashboard tile", + "in": "path", + "name": "dashboardTileUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "the comment to create", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pick_Comment.text-or-replyTo-or-mentions-or-textHtml_", + "description": "the comment to create" + } + } + } + } + } + }, + "/api/v1/comments/dashboards/{dashboardUuid}": { + "get": { + "operationId": "getComments", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiGetComments" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Gets all comments for a dashboard", + "tags": ["Comments"], + "security": [], + "parameters": [ + { + "description": "the uuid of the dashboard", + "in": "path", + "name": "dashboardUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/comments/dashboards/{dashboardUuid}/{commentId}": { + "patch": { + "operationId": "resolveComment", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiResolveComment" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Resolves a comment on a dashboard", + "tags": ["Comments"], + "security": [], + "parameters": [ + { + "description": "the uuid of the dashboard", + "in": "path", + "name": "dashboardUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the uuid of the comment", + "in": "path", + "name": "commentId", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "delete": { + "operationId": "deleteComment", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiResolveComment" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Deletes a comment on a dashboard", + "tags": ["Comments"], + "security": [], + "parameters": [ + { + "description": "the uuid of the dashboard", + "in": "path", + "name": "dashboardUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the uuid of the comment", + "in": "path", + "name": "commentId", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/csv/{jobId}": { + "get": { + "operationId": "getCsvUrl", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiCsvUrlResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get a Csv", + "tags": ["Exports"], + "security": [], + "parameters": [ + { + "description": "the jobId for the CSV", + "in": "path", + "name": "jobId", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/dashboards/{dashboardUuid}/promote": { + "post": { + "operationId": "promoteDashboard", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiPromoteDashboardResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Promote dashboard to its upstream project", + "tags": ["Dashboards"], + "security": [], + "parameters": [ + { + "description": "dashboardUuid for the dashboard to run", + "in": "path", + "name": "dashboardUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/dashboards/{dashboardUuid}/promoteDiff": { + "get": { + "operationId": "promoteDashboardDiff", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiPromotionChangesResponse" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Get diff from dashboard to promote", + "tags": ["Dashboards"], + "security": [], + "parameters": [ + { + "description": "dashboardUuid for the dashboard to check diff", + "in": "path", + "name": "dashboardUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] } }, - "securitySchemes": { - "session_cookie": { - "type": "apiKey", - "in": "cookie", - "name": "connect.sid" + "/api/v1/projects/{projectUuid}/explores": { + "put": { + "operationId": "SetExplores", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "tags": ["Projects"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "items": {}, + "type": "array" + } + } + } + } }, - "api_key": { - "type": "apiKey", - "in": "header", - "name": "Authorization", - "description": "Value should be 'ApiKey '" + "get": { + "operationId": "GetExplores", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "$ref": "#/components/schemas/ApiExploresResults" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "tags": ["Projects"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] } - } - }, - "info": { - "title": "Lightdash API", - "version": "0.1286.0", - "description": "Open API documentation for all public Lightdash API endpoints. # Authentication Before you get started, you might need to create a Personal Access Token to authenticate via the API. You can create a token by following this guide: https://docs.lightdash.com/references/personal_tokens\n", - "license": { - "name": "MIT" }, - "contact": { - "name": "Lightdash Support", - "email": "support@lightdash.com", - "url": "https://docs.lightdash.com/help-and-contact/contact/contact_info/" - } - }, - "openapi": "3.0.0", - "paths": { - "/api/v1/projects/{projectUuid}/dataCatalog": { + "/api/v1/projects/{projectUuid}/explores/{exploreId}": { "get": { - "operationId": "getCatalog", + "operationId": "GetExplore", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "$ref": "#/components/schemas/ApiExploreResults" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "tags": ["Projects"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "exploreId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] + } + }, + "/api/v1/projects/{projectUuid}/explores/{exploreId}/compileQuery": { + "post": { + "operationId": "CompileQuery", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "$ref": "#/components/schemas/ApiCompiledQueryResults" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "tags": ["Projects"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "exploreId", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MetricQuery" + } + } + } + } + } + }, + "/api/v1/projects/{projectUuid}/explores/{exploreId}/downloadCsv": { + "post": { + "operationId": "DownloadCsvFromExplore", "responses": { "200": { "description": "Success", @@ -10159,7 +13425,13 @@ "schema": { "properties": { "results": { - "$ref": "#/components/schemas/ApiCatalogResults" + "properties": { + "jobId": { + "type": "string" + } + }, + "required": ["jobId"], + "type": "object" }, "status": { "type": "string", @@ -10184,10 +13456,17 @@ } } }, - "description": "Get catalog items", - "tags": ["Catalog"], + "tags": ["Projects"], "security": [], "parameters": [ + { + "in": "path", + "name": "exploreId", + "required": true, + "schema": { + "type": "string" + } + }, { "in": "path", "name": "projectUuid", @@ -10195,46 +13474,170 @@ "schema": { "type": "string" } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/MetricQuery" + }, + { + "properties": { + "pivotColumns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "chartName": { + "type": "string" + }, + "hiddenFields": { + "items": { + "type": "string" + }, + "type": "array" + }, + "columnOrder": { + "items": { + "type": "string" + }, + "type": "array" + }, + "customLabels": { + "properties": {}, + "additionalProperties": { + "type": "string" + }, + "type": "object" + }, + "showTableNames": { + "type": "boolean" + }, + "csvLimit": { + "type": "number", + "format": "double", + "nullable": true + }, + "onlyRaw": { + "type": "boolean" + } + }, + "required": [ + "columnOrder", + "showTableNames", + "onlyRaw" + ], + "type": "object" + } + ] + } + } + } + } + } + }, + "/api/v1/github/install": { + "get": { + "operationId": "installGithubAppForOrganization", + "responses": { + "302": { + "description": "Not found" + } + }, + "description": "Install the Lightdash GitHub App and link to an organization", + "security": [], + "parameters": [] + } + }, + "/api/v1/github/oauth/callback": { + "get": { + "operationId": "githubOauthCallback", + "responses": { + "204": { + "description": "No content" + } + }, + "description": "Callback URL for GitHub App Authorization also used for GitHub App Installation with combined Authorization", + "security": [], + "parameters": [ + { + "description": "authorization code from GitHub", + "in": "query", + "name": "code", + "required": false, + "schema": { + "type": "string" + } }, { + "description": "oauth state parameter", "in": "query", - "name": "search", + "name": "state", "required": false, "schema": { "type": "string" } }, { + "description": "installation id from GitHub", "in": "query", - "name": "type", + "name": "installation_id", "required": false, "schema": { - "$ref": "#/components/schemas/CatalogType" + "type": "string" } }, { + "description": "setup action from GitHub", "in": "query", - "name": "filter", + "name": "setup_action", "required": false, "schema": { - "$ref": "#/components/schemas/CatalogFilter" + "type": "string" } } ] } }, - "/api/v1/projects/{projectUuid}/dataCatalog/{table}/metadata": { + "/api/v1/github/uninstall": { + "delete": { + "operationId": "uninstallGithubAppForOrganization", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } + } + } + }, + "security": [], + "parameters": [] + } + }, + "/api/v1/github/repos/list": { "get": { - "operationId": "getMetadata", + "operationId": "getGithubListRepositories", "responses": { "200": { - "description": "Success", + "description": "", "content": { "application/json": { "schema": { "properties": { "results": { - "$ref": "#/components/schemas/ApiCatalogMetadataResults" + "items": { + "$ref": "#/components/schemas/GitRepo" + }, + "type": "array" }, "status": { "type": "string", @@ -10247,45 +13650,15 @@ } } } - }, - "default": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiErrorPayload" - } - } - } } }, - "description": "Get catalog metadata for tables", - "tags": ["Catalog"], "security": [], - "parameters": [ - { - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Table name to get metadata for", - "in": "path", - "name": "table", - "required": true, - "schema": { - "type": "string" - } - } - ] + "parameters": [] } }, - "/api/v1/projects/{projectUuid}/dataCatalog/{table}/analytics": { + "/api/v1/projects/{projectUuid}/git-integration": { "get": { - "operationId": "getAnalytics", + "operationId": "GetConfiguration", "responses": { "200": { "description": "Success", @@ -10294,7 +13667,7 @@ "schema": { "properties": { "results": { - "$ref": "#/components/schemas/ApiCatalogAnalyticsResults" + "$ref": "#/components/schemas/GitIntegrationConfiguration" }, "status": { "type": "string", @@ -10319,8 +13692,7 @@ } } }, - "description": "Get catalog analytics for tables", - "tags": ["Catalog"], + "tags": ["Git Integration"], "security": [], "parameters": [ { @@ -10330,22 +13702,13 @@ "schema": { "type": "string" } - }, - { - "description": "Table name to get analytics for", - "in": "path", - "name": "table", - "required": true, - "schema": { - "type": "string" - } } ] } }, - "/api/v1/projects/{projectUuid}/dataCatalog/{table}/analytics/{field}": { + "/api/v1/projects/{projectUuid}/git-integration/pull-requests/chart/{chartUuid}/fields": { "get": { - "operationId": "getAnalyticsField", + "operationId": "CreatePullRequestForChartFields", "responses": { "200": { "description": "Success", @@ -10354,7 +13717,7 @@ "schema": { "properties": { "results": { - "$ref": "#/components/schemas/ApiCatalogAnalyticsResults" + "$ref": "#/components/schemas/PullRequestCreated" }, "status": { "type": "string", @@ -10379,8 +13742,7 @@ } } }, - "description": "Get catalog analytics for fields", - "tags": ["Catalog"], + "tags": ["Git Integration"], "security": [], "parameters": [ { @@ -10392,18 +13754,8 @@ } }, { - "description": "Table where this field belongs", - "in": "path", - "name": "table", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "Field name to get analytics for", "in": "path", - "name": "field", + "name": "chartUuid", "required": true, "schema": { "type": "string" @@ -10412,16 +13764,27 @@ ] } }, - "/api/v1/comments/dashboards/{dashboardUuid}/{dashboardTileUuid}": { + "/api/v1/projects/{projectUuid}/git-integration/pull-requests/custom-metrics": { "post": { - "operationId": "createComment", + "operationId": "CreatePullRequestForCustomMetrics", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiCreateComment" + "properties": { + "results": { + "$ref": "#/components/schemas/PullRequestCreated" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" } } } @@ -10437,23 +13800,12 @@ } } }, - "description": "Creates a comment on a dashboard tile", - "tags": ["Comments"], + "tags": ["Git Integration"], "security": [], "parameters": [ { - "description": "the uuid of the dashboard", - "in": "path", - "name": "dashboardUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "the uuid of the dashboard tile", "in": "path", - "name": "dashboardTileUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" @@ -10461,29 +13813,40 @@ } ], "requestBody": { - "description": "the comment to create", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Pick_Comment.text-or-replyTo-or-mentions-or-textHtml_", - "description": "the comment to create" + "properties": { + "quoteChar": { + "type": "string", + "enum": ["\"", "'"] + }, + "customMetrics": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": ["quoteChar", "customMetrics"], + "type": "object" } } } } } }, - "/api/v1/comments/dashboards/{dashboardUuid}": { + "/api/v1/gdrive/get-access-token": { "get": { - "operationId": "getComments", + "operationId": "getAccessToken", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGetComments" + "$ref": "#/components/schemas/ApiGdriveAccessTokenResponse" } } } @@ -10499,32 +13862,22 @@ } } }, - "description": "Gets all comments for a dashboard", - "tags": ["Comments"], + "description": "Get access token for google drive", + "tags": ["Integrations"], "security": [], - "parameters": [ - { - "description": "the uuid of the dashboard", - "in": "path", - "name": "dashboardUuid", - "required": true, - "schema": { - "type": "string" - } - } - ] + "parameters": [] } }, - "/api/v1/comments/dashboards/{dashboardUuid}/{commentId}": { - "patch": { - "operationId": "resolveComment", + "/api/v1/gdrive/upload-gsheet": { + "post": { + "operationId": "uploadGsheet", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiResolveComment" + "$ref": "#/components/schemas/ApiJobScheduledResponse" } } } @@ -10540,39 +13893,32 @@ } } }, - "description": "Resolves a comment on a dashboard", - "tags": ["Comments"], + "description": "Upload results from query to Google Sheet", + "tags": ["Integrations"], "security": [], - "parameters": [ - { - "description": "the uuid of the dashboard", - "in": "path", - "name": "dashboardUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "the uuid of the comment", - "in": "path", - "name": "commentId", - "required": true, - "schema": { - "type": "string" + "parameters": [], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UploadMetricGsheet" + } } } - ] - }, - "delete": { - "operationId": "deleteComment", + } + } + }, + "/api/v1/groups/{groupUuid}": { + "get": { + "operationId": "getGroup", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiResolveComment" + "$ref": "#/components/schemas/ApiGroupResponse" } } } @@ -10588,82 +13934,50 @@ } } }, - "description": "Deletes a comment on a dashboard", - "tags": ["Comments"], + "description": "Get group details", + "tags": ["User Groups"], "security": [], "parameters": [ { - "description": "the uuid of the dashboard", + "description": "unique id of the group", "in": "path", - "name": "dashboardUuid", + "name": "groupUuid", "required": true, "schema": { "type": "string" } }, { - "description": "the uuid of the comment", - "in": "path", - "name": "commentId", - "required": true, + "description": "number of members to include", + "in": "query", + "name": "includeMembers", + "required": false, "schema": { - "type": "string" - } - } - ] - } - }, - "/api/v1/csv/{jobId}": { - "get": { - "operationId": "getCsvUrl", - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiCsvUrlResponse" - } - } + "format": "double", + "type": "number" } }, - "default": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiErrorPayload" - } - } - } - } - }, - "description": "Get a Csv", - "tags": ["Exports"], - "security": [], - "parameters": [ { - "description": "the jobId for the CSV", - "in": "path", - "name": "jobId", - "required": true, + "description": "offset of members to include", + "in": "query", + "name": "offset", + "required": false, "schema": { - "type": "string" + "format": "double", + "type": "number" } } ] - } - }, - "/api/v1/dashboards/{dashboardUuid}/promote": { - "post": { - "operationId": "promoteDashboard", + }, + "delete": { + "operationId": "deleteGroup", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiPromoteDashboardResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -10679,32 +13993,29 @@ } } }, - "description": "Promote dashboard to its upstream project", - "tags": ["Dashboards"], + "description": "Delete a group", + "tags": ["User Groups"], "security": [], "parameters": [ { - "description": "dashboardUuid for the dashboard to run", "in": "path", - "name": "dashboardUuid", + "name": "groupUuid", "required": true, "schema": { "type": "string" } } ] - } - }, - "/api/v1/dashboards/{dashboardUuid}/promoteDiff": { - "get": { - "operationId": "promoteDashboardDiff", + }, + "patch": { + "operationId": "updateGroup", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiPromotionChangesResponse" + "$ref": "#/components/schemas/ApiGroupResponse" } } } @@ -10720,28 +14031,37 @@ } } }, - "description": "Get diff from dashboard to promote", - "tags": ["Dashboards"], + "description": "Update a group", + "tags": ["User Groups"], "security": [], "parameters": [ { - "description": "dashboardUuid for the dashboard to check diff", "in": "path", - "name": "dashboardUuid", + "name": "groupUuid", "required": true, "schema": { "type": "string" } } - ] + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateGroupWithMembers" + } + } + } + } } }, - "/api/v1/projects/{projectUuid}/explores": { + "/api/v1/groups/{groupUuid}/members/{userUuid}": { "put": { - "operationId": "SetExplores", + "operationId": "addUserToGroup", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { @@ -10761,50 +14081,39 @@ } } }, - "tags": ["Projects"], + "description": "Add a Lightdash user to a group", + "tags": ["User Groups"], "security": [], "parameters": [ { + "description": "the UUID for the group to add the user to", "in": "path", - "name": "projectUuid", + "name": "groupUuid", "required": true, "schema": { "type": "string" } - } - ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "items": {}, - "type": "array" - } + }, + { + "description": "the UUID for the user to add to the group", + "in": "path", + "name": "userUuid", + "required": true, + "schema": { + "type": "string" } } - } + ] }, - "get": { - "operationId": "GetExplores", + "delete": { + "operationId": "removeUserFromGroup", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/ApiExploresResults" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -10820,12 +14129,23 @@ } } }, - "tags": ["Projects"], + "description": "Remove a user from a group", + "tags": ["User Groups"], "security": [], "parameters": [ { + "description": "the UUID for the group to remove the user from", "in": "path", - "name": "projectUuid", + "name": "groupUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the UUID for the user to remove from the group", + "in": "path", + "name": "userUuid", "required": true, "schema": { "type": "string" @@ -10834,27 +14154,16 @@ ] } }, - "/api/v1/projects/{projectUuid}/explores/{exploreId}": { + "/api/v1/groups/{groupUuid}/members": { "get": { - "operationId": "GetExplore", + "operationId": "getGroupMembers", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/ApiExploreResults" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "$ref": "#/components/schemas/ApiGroupMembersResponse" } } } @@ -10870,20 +14179,14 @@ } } }, - "tags": ["Projects"], + "description": "View members of a group", + "tags": ["User Groups"], "security": [], "parameters": [ { + "description": "the UUID for the group to view the members of", "in": "path", - "name": "exploreId", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "projectUuid", + "name": "groupUuid", "required": true, "schema": { "type": "string" @@ -10892,27 +14195,16 @@ ] } }, - "/api/v1/projects/{projectUuid}/explores/{exploreId}/compileQuery": { + "/api/v1/groups/{groupUuid}/projects/{projectUuid}": { "post": { - "operationId": "CompileQuery", + "operationId": "addProjectAccessToGroup", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/ApiCompiledQueryResults" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "$ref": "#/components/schemas/ApiCreateProjectGroupAccess" } } } @@ -10928,12 +14220,13 @@ } } }, - "tags": ["Projects"], + "description": "Add project access to a group", + "tags": ["User Groups"], "security": [], "parameters": [ { "in": "path", - "name": "exploreId", + "name": "groupUuid", "required": true, "schema": { "type": "string" @@ -10953,40 +14246,21 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/MetricQuery" + "$ref": "#/components/schemas/Pick_CreateDBProjectGroupAccess.role_" } } } } - } - }, - "/api/v1/projects/{projectUuid}/explores/{exploreId}/downloadCsv": { - "post": { - "operationId": "DownloadCsvFromExplore", + }, + "patch": { + "operationId": "updateProjectAccessForGroup", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "properties": { - "results": { - "properties": { - "jobId": { - "type": "string" - } - }, - "required": ["jobId"], - "type": "object" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "$ref": "#/components/schemas/ApiUpdateProjectGroupAccess" } } } @@ -11002,12 +14276,13 @@ } } }, - "tags": ["Projects"], + "description": "Update project access for a group", + "tags": ["User Groups"], "security": [], "parameters": [ { "in": "path", - "name": "exploreId", + "name": "groupUuid", "required": true, "schema": { "type": "string" @@ -11027,196 +14302,203 @@ "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/MetricQuery" - }, - { - "properties": { - "chartName": { - "type": "string" - }, - "hiddenFields": { - "items": { - "type": "string" - }, - "type": "array" - }, - "columnOrder": { - "items": { - "type": "string" - }, - "type": "array" - }, - "customLabels": { - "properties": {}, - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "showTableNames": { - "type": "boolean" - }, - "csvLimit": { - "type": "number", - "format": "double", - "nullable": true - }, - "onlyRaw": { - "type": "boolean" - } - }, - "required": [ - "columnOrder", - "showTableNames", - "onlyRaw" - ], - "type": "object" - } - ] + "$ref": "#/components/schemas/UpdateDBProjectGroupAccess" } } } } - } - }, - "/api/v1/github/install": { - "get": { - "operationId": "installGithubAppForOrganization", + }, + "delete": { + "operationId": "removeProjectAccessFromGroup", "responses": { - "302": { - "description": "Not found" + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } } }, - "description": "Install the Lightdash GitHub App and link to an organization", + "description": "Remove project access from a group", + "tags": ["User Groups"], "security": [], - "parameters": [] + "parameters": [ + { + "in": "path", + "name": "groupUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] } }, - "/api/v1/github/oauth/callback": { - "get": { - "operationId": "githubOauthCallback", + "/api/v1/projects/{projectUuid}/metricsExplorer/{explore}/{metric}/runMetricExplorerQuery": { + "post": { + "operationId": "runMetricExplorerQuery", "responses": { - "204": { - "description": "No content" + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiMetricsExplorerQueryResults" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } } }, - "description": "Callback URL for GitHub App Authorization also used for GitHub App Installation with combined Authorization", + "description": "Run a metrics explorer query", + "tags": ["Metrics Explorer", "Metrics", "Explorer"], "security": [], "parameters": [ { - "description": "authorization code from GitHub", - "in": "query", - "name": "code", - "required": false, + "description": "The project UUID", + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "The explore name", + "in": "path", + "name": "explore", + "required": true, "schema": { "type": "string" } }, { - "description": "oauth state parameter", - "in": "query", - "name": "state", - "required": false, + "description": "The metric name", + "in": "path", + "name": "metric", + "required": true, "schema": { "type": "string" } }, { - "description": "installation id from GitHub", "in": "query", - "name": "installation_id", - "required": false, + "name": "startDate", + "required": true, "schema": { "type": "string" } }, { - "description": "setup action from GitHub", "in": "query", - "name": "setup_action", - "required": false, + "name": "endDate", + "required": true, "schema": { "type": "string" } } - ] + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "properties": { + "comparison": { + "$ref": "#/components/schemas/MetricExplorerComparisonType" + }, + "timeDimensionOverride": { + "$ref": "#/components/schemas/TimeDimensionConfig" + } + }, + "required": ["comparison"], + "type": "object" + } + } + } + } } }, - "/api/v1/github/uninstall": { - "delete": { - "operationId": "uninstallGithubAppForOrganization", + "/api/v1/notifications": { + "get": { + "operationId": "getNotifications", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiGetNotifications" } } } - } - }, - "security": [], - "parameters": [] - } - }, - "/api/v1/github/repos/list": { - "get": { - "operationId": "getGithubListRepositories", - "responses": { - "200": { - "description": "", + }, + "default": { + "description": "Error", "content": { "application/json": { "schema": { - "properties": { - "results": { - "items": { - "$ref": "#/components/schemas/GitRepo" - }, - "type": "array" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "$ref": "#/components/schemas/ApiErrorPayload" } } } } }, + "description": "Gets notifications for a user based on the type", + "tags": ["Notifications"], "security": [], - "parameters": [] + "parameters": [ + { + "in": "query", + "name": "type", + "required": true, + "schema": { + "$ref": "#/components/schemas/ApiNotificationResourceType" + } + } + ] } }, - "/api/v1/projects/{projectUuid}/git-integration": { - "get": { - "operationId": "GetConfiguration", + "/api/v1/notifications/{notificationId}": { + "patch": { + "operationId": "updateNotification", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/GitIntegrationConfiguration" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -11232,41 +14514,42 @@ } } }, - "tags": ["Git Integration"], + "description": "Update notification", + "tags": ["Notifications"], "security": [], "parameters": [ { + "description": "the id of the notification", "in": "path", - "name": "projectUuid", + "name": "notificationId", "required": true, "schema": { "type": "string" } } - ] + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiNotificationUpdateParams" + } + } + } + } } }, - "/api/v1/projects/{projectUuid}/git-integration/pull-requests/chart/{chartUuid}/fields": { + "/api/v1/org": { "get": { - "operationId": "CreatePullRequestForChartFields", + "operationId": "GetMyOrganization", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/PullRequestCreated" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "$ref": "#/components/schemas/ApiOrganization" } } } @@ -11282,49 +14565,61 @@ } } }, - "tags": ["Git Integration"], + "description": "Get the current user's organization", + "tags": ["Organizations"], "security": [], - "parameters": [ - { - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" + "parameters": [] + }, + "put": { + "operationId": "CreateOrganization", + "responses": { + "200": { + "description": "Ok", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } } }, - { - "in": "path", - "name": "chartUuid", - "required": true, - "schema": { - "type": "string" + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } } } - ] - } - }, - "/api/v1/projects/{projectUuid}/git-integration/pull-requests/custom-metrics": { - "post": { - "operationId": "CreatePullRequestForCustomMetrics", + }, + "description": "Creates a new organization, the current user becomes the Admin of the new organization.\nThis is only available to users that are not already in an organization.", + "tags": ["Organizations"], + "security": [], + "parameters": [], + "requestBody": { + "description": "the new organization settings", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateOrganization", + "description": "the new organization settings" + } + } + } + } + }, + "patch": { + "operationId": "UpdateMyOrganization", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/PullRequestCreated" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -11340,53 +14635,34 @@ } } }, - "tags": ["Git Integration"], + "description": "Update the current user's organization", + "tags": ["Organizations"], "security": [], - "parameters": [ - { - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { + "description": "the new organization settings", "required": true, "content": { - "application/json": { - "schema": { - "properties": { - "quoteChar": { - "type": "string", - "enum": ["\"", "'"] - }, - "customMetrics": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": ["quoteChar", "customMetrics"], - "type": "object" + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateOrganization", + "description": "the new organization settings" } } } } } }, - "/api/v1/gdrive/get-access-token": { - "get": { - "operationId": "getAccessToken", + "/api/v1/org/{organizationUuid}": { + "delete": { + "operationId": "DeleteMyOrganization", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGdriveAccessTokenResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -11402,22 +14678,32 @@ } } }, - "description": "Get access token for google drive", - "tags": ["Integrations"], + "description": "Deletes an organization and all users inside that organization", + "tags": ["Organizations"], "security": [], - "parameters": [] + "parameters": [ + { + "description": "the uuid of the organization to delete", + "in": "path", + "name": "organizationUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] } }, - "/api/v1/gdrive/upload-gsheet": { - "post": { - "operationId": "uploadGsheet", + "/api/v1/org/projects": { + "get": { + "operationId": "ListOrganizationProjects", "responses": { "200": { - "description": "Success", + "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiJobScheduledResponse" + "$ref": "#/components/schemas/ApiOrganizationProjects" } } } @@ -11433,32 +14719,22 @@ } } }, - "description": "Upload results from query to Google Sheet", - "tags": ["Integrations"], + "description": "Gets all projects of the current user's organization", + "tags": ["Organizations"], "security": [], - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UploadMetricGsheet" - } - } - } - } + "parameters": [] } }, - "/api/v1/groups/{groupUuid}": { + "/api/v1/org/users": { "get": { - "operationId": "getGroup", + "operationId": "ListOrganizationMembers", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGroupResponse" + "$ref": "#/components/schemas/ApiOrganizationMemberProfiles" } } } @@ -11474,23 +14750,22 @@ } } }, - "description": "Get group details", - "tags": ["User Groups"], + "description": "Gets all the members of the current user's organization", + "tags": ["Organizations"], "security": [], "parameters": [ { - "description": "unique id of the group", - "in": "path", - "name": "groupUuid", - "required": true, + "in": "query", + "name": "includeGroups", + "required": false, "schema": { - "type": "string" + "format": "double", + "type": "number" } }, { - "description": "number of members to include", "in": "query", - "name": "includeMembers", + "name": "pageSize", "required": false, "schema": { "format": "double", @@ -11498,26 +14773,44 @@ } }, { - "description": "offset of members to include", "in": "query", - "name": "offset", + "name": "page", "required": false, "schema": { "format": "double", "type": "number" } + }, + { + "in": "query", + "name": "searchQuery", + "required": false, + "schema": { + "type": "string" + } + }, + { + "description": "filter users who can view this project", + "in": "query", + "name": "projectUuid", + "required": false, + "schema": { + "type": "string" + } } ] - }, - "delete": { - "operationId": "deleteGroup", + } + }, + "/api/v1/org/users/{userUuid}": { + "get": { + "operationId": "GetOrganizationMemberByUuid", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiOrganizationMemberProfile" } } } @@ -11533,29 +14826,30 @@ } } }, - "description": "Delete a group", - "tags": ["User Groups"], + "description": "Get the member profile for a user in the current user's organization by uuid", + "tags": ["Organizations"], "security": [], "parameters": [ { + "description": "the uuid of the user", "in": "path", - "name": "groupUuid", + "name": "userUuid", "required": true, "schema": { - "type": "string" + "$ref": "#/components/schemas/UUID" } } ] }, "patch": { - "operationId": "updateGroup", + "operationId": "UpdateOrganizationMember", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGroupResponse" + "$ref": "#/components/schemas/ApiOrganizationMemberProfile" } } } @@ -11571,13 +14865,14 @@ } } }, - "description": "Update a group", - "tags": ["User Groups"], + "description": "Updates the membership profile for a user in the current user's organization", + "tags": ["Roles & Permissions", "Organizations"], "security": [], "parameters": [ { + "description": "the uuid of the user to update", "in": "path", - "name": "groupUuid", + "name": "userUuid", "required": true, "schema": { "type": "string" @@ -11585,68 +14880,22 @@ } ], "requestBody": { + "description": "the new membership profile", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateGroupWithMembers" + "$ref": "#/components/schemas/OrganizationMemberProfileUpdate", + "description": "the new membership profile" } } } } } }, - "/api/v1/groups/{groupUuid}/members/{userUuid}": { - "put": { - "operationId": "addUserToGroup", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" - } - } - } - }, - "default": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiErrorPayload" - } - } - } - } - }, - "description": "Add a Lightdash user to a group", - "tags": ["User Groups"], - "security": [], - "parameters": [ - { - "description": "the UUID for the group to add the user to", - "in": "path", - "name": "groupUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "the UUID for the user to add to the group", - "in": "path", - "name": "userUuid", - "required": true, - "schema": { - "type": "string" - } - } - ] - }, + "/api/v1/org/user/{userUuid}": { "delete": { - "operationId": "removeUserFromGroup", + "operationId": "DeleteOrganizationMember", "responses": { "200": { "description": "Ok", @@ -11669,21 +14918,12 @@ } } }, - "description": "Remove a user from a group", - "tags": ["User Groups"], + "description": "Deletes a user from the current user's organization", + "tags": ["Organizations"], "security": [], "parameters": [ { - "description": "the UUID for the group to remove the user from", - "in": "path", - "name": "groupUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "description": "the UUID for the user to remove from the group", + "description": "the uuid of the user to delete", "in": "path", "name": "userUuid", "required": true, @@ -11694,16 +14934,16 @@ ] } }, - "/api/v1/groups/{groupUuid}/members": { + "/api/v1/org/allowedEmailDomains": { "get": { - "operationId": "getGroupMembers", + "operationId": "ListOrganizationEmailDomains", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGroupMembersResponse" + "$ref": "#/components/schemas/ApiOrganizationAllowedEmailDomains" } } } @@ -11719,32 +14959,20 @@ } } }, - "description": "View members of a group", - "tags": ["User Groups"], + "description": "Gets the allowed email domains for the current user's organization", + "tags": ["Organizations"], "security": [], - "parameters": [ - { - "description": "the UUID for the group to view the members of", - "in": "path", - "name": "groupUuid", - "required": true, - "schema": { - "type": "string" - } - } - ] - } - }, - "/api/v1/groups/{groupUuid}/projects/{projectUuid}": { - "post": { - "operationId": "addProjectAccessToGroup", + "parameters": [] + }, + "patch": { + "operationId": "UpdateOrganizationEmailDomains", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiCreateProjectGroupAccess" + "$ref": "#/components/schemas/ApiOrganizationAllowedEmailDomains" } } } @@ -11760,47 +14988,34 @@ } } }, - "description": "Add project access to a group", - "tags": ["User Groups"], + "description": "Updates the allowed email domains for the current user's organization", + "tags": ["Organizations"], "security": [], - "parameters": [ - { - "in": "path", - "name": "groupUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { + "description": "the new allowed email domains", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Pick_CreateDBProjectGroupAccess.role_" + "$ref": "#/components/schemas/UpdateAllowedEmailDomains", + "description": "the new allowed email domains" } } } } - }, - "patch": { - "operationId": "updateProjectAccessForGroup", + } + }, + "/api/v1/org/groups": { + "post": { + "operationId": "CreateGroupInOrganization", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiUpdateProjectGroupAccess" + "$ref": "#/components/schemas/ApiCreateGroupResponse" } } } @@ -11816,47 +15031,32 @@ } } }, - "description": "Update project access for a group", - "tags": ["User Groups"], + "description": "Creates a new group in the current user's organization", + "tags": ["Organizations"], "security": [], - "parameters": [ - { - "in": "path", - "name": "groupUuid", - "required": true, - "schema": { - "type": "string" - } - }, - { - "in": "path", - "name": "projectUuid", - "required": true, - "schema": { - "type": "string" - } - } - ], + "parameters": [], "requestBody": { + "description": "the new group details", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateDBProjectGroupAccess" + "$ref": "#/components/schemas/CreateGroup", + "description": "the new group details" } } } } }, - "delete": { - "operationId": "removeProjectAccessFromGroup", + "get": { + "operationId": "ListGroupsInOrganization", "responses": { "200": { "description": "Ok", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiGroupListResponse" } } } @@ -11872,22 +15072,42 @@ } } }, - "description": "Remove project access from a group", - "tags": ["User Groups"], + "description": "Gets all the groups in the current user's organization", + "tags": ["Organizations"], "security": [], "parameters": [ { - "in": "path", - "name": "groupUuid", - "required": true, + "in": "query", + "name": "page", + "required": false, "schema": { - "type": "string" + "format": "double", + "type": "number" } }, { - "in": "path", - "name": "projectUuid", - "required": true, + "in": "query", + "name": "pageSize", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, + { + "description": "number of members to include", + "in": "query", + "name": "includeMembers", + "required": false, + "schema": { + "format": "double", + "type": "number" + } + }, + { + "in": "query", + "name": "searchQuery", + "required": false, "schema": { "type": "string" } @@ -11895,16 +15115,16 @@ ] } }, - "/api/v1/notifications": { + "/api/v1/projects/{projectUuid}/pinned-lists/{pinnedListUuid}/items": { "get": { - "operationId": "getNotifications", + "operationId": "getPinnedItems", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGetNotifications" + "$ref": "#/components/schemas/ApiPinnedItems" } } } @@ -11920,31 +15140,41 @@ } } }, - "description": "Gets notifications for a user based on the type", - "tags": ["Notifications"], + "description": "Get pinned items", + "tags": ["Content"], "security": [], "parameters": [ { - "in": "query", - "name": "type", + "description": "project uuid", + "in": "path", + "name": "projectUuid", "required": true, "schema": { - "$ref": "#/components/schemas/ApiNotificationResourceType" + "type": "string" + } + }, + { + "description": "the list uuid for the pinned items", + "in": "path", + "name": "pinnedListUuid", + "required": true, + "schema": { + "type": "string" } } ] } }, - "/api/v1/notifications/{notificationId}": { + "/api/v1/projects/{projectUuid}/pinned-lists/{pinnedListUuid}/items/order": { "patch": { - "operationId": "updateNotification", + "operationId": "updatePinnedItemsOrder", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiPinnedItems" } } } @@ -11960,14 +15190,23 @@ } } }, - "description": "Update notification", - "tags": ["Notifications"], + "description": "Update pinned items order", + "tags": ["Content"], "security": [], "parameters": [ { - "description": "the id of the notification", + "description": "project uuid", "in": "path", - "name": "notificationId", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "description": "the list uuid for the pinned items", + "in": "path", + "name": "pinnedListUuid", "required": true, "schema": { "type": "string" @@ -11975,56 +15214,32 @@ } ], "requestBody": { + "description": "the new order of the pinned items", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiNotificationUpdateParams" + "items": { + "$ref": "#/components/schemas/UpdatePinnedItemOrder" + }, + "type": "array", + "description": "the new order of the pinned items" } } } } } }, - "/api/v1/org": { + "/api/v1/projects/{projectUuid}": { "get": { - "operationId": "GetMyOrganization", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiOrganization" - } - } - } - }, - "default": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiErrorPayload" - } - } - } - } - }, - "description": "Get the current user's organization", - "tags": ["Organizations"], - "security": [], - "parameters": [] - }, - "put": { - "operationId": "CreateOrganization", + "operationId": "GetProject", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiProjectResponse" } } } @@ -12040,32 +15255,31 @@ } } }, - "description": "Creates a new organization, the current user becomes the Admin of the new organization.\nThis is only available to users that are not already in an organization.", - "tags": ["Organizations"], + "description": "Get a project of an organiztion", + "tags": ["Projects"], "security": [], - "parameters": [], - "requestBody": { - "description": "the new organization settings", - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateOrganization", - "description": "the new organization settings" - } + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" } } - } - }, - "patch": { - "operationId": "UpdateMyOrganization", + ] + } + }, + "/api/v1/projects/{projectUuid}/charts": { + "get": { + "operationId": "ListChartsInProject", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiChartListResponse" } } } @@ -12081,34 +15295,32 @@ } } }, - "description": "Update the current user's organization", - "tags": ["Organizations"], + "description": "List all charts in a project", + "tags": ["Projects"], "security": [], - "parameters": [], - "requestBody": { - "description": "the new organization settings", - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/UpdateOrganization", - "description": "the new organization settings" - } + "parameters": [ + { + "description": "The uuid of the project to get charts for", + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" } } - } + ] } }, - "/api/v1/org/{organizationUuid}": { - "delete": { - "operationId": "DeleteMyOrganization", + "/api/v1/projects/{projectUuid}/chart-summaries": { + "get": { + "operationId": "ListChartSummariesInProject", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiChartSummaryListResponse" } } } @@ -12124,32 +15336,41 @@ } } }, - "description": "Deletes an organization and all users inside that organization", - "tags": ["Organizations"], + "description": "List all charts summaries in a project", + "tags": ["Projects"], "security": [], "parameters": [ { - "description": "the uuid of the organization to delete", + "description": "The uuid of the project to get charts for", "in": "path", - "name": "organizationUuid", + "name": "projectUuid", "required": true, "schema": { - "type": "string" + "type": "string" + } + }, + { + "description": "Whether to exclude charts that are saved in dashboards", + "in": "query", + "name": "excludeChartsSavedInDashboard", + "required": false, + "schema": { + "type": "boolean" } } ] } }, - "/api/v1/org/projects": { + "/api/v1/projects/{projectUuid}/spaces": { "get": { - "operationId": "ListOrganizationProjects", + "operationId": "ListSpacesInProject", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiOrganizationProjects" + "$ref": "#/components/schemas/ApiSpaceSummaryListResponse" } } } @@ -12165,22 +15386,30 @@ } } }, - "description": "Gets all projects of the current user's organization", - "tags": ["Organizations"], + "description": "List all spaces in a project", + "tags": ["Projects"], "security": [], - "parameters": [] - } - }, - "/api/v1/org/users": { - "get": { - "operationId": "ListOrganizationMembers", + "parameters": [ + { + "description": "The uuid of the project to get spaces for", + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] + }, + "post": { + "operationId": "CreateSpaceInProject", "responses": { "200": { - "description": "Ok", + "description": "Created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiOrganizationMemberProfiles" + "$ref": "#/components/schemas/ApiSpaceResponse" } } } @@ -12196,58 +15425,42 @@ } } }, - "description": "Gets all the members of the current user's organization", - "tags": ["Organizations"], + "description": "Create a new space inside a project", + "tags": ["Roles & Permissions", "Spaces"], "security": [], "parameters": [ { - "in": "query", - "name": "includeGroups", - "required": false, - "schema": { - "format": "double", - "type": "number" - } - }, - { - "in": "query", - "name": "pageSize", - "required": false, - "schema": { - "format": "double", - "type": "number" - } - }, - { - "in": "query", - "name": "page", - "required": false, - "schema": { - "format": "double", - "type": "number" - } - }, - { - "in": "query", - "name": "searchQuery", - "required": false, + "description": "The uuid of the space's parent project", + "in": "path", + "name": "projectUuid", + "required": true, "schema": { "type": "string" } } - ] + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateSpace" + } + } + } + } } }, - "/api/v1/org/users/{userUuid}": { + "/api/v1/projects/{projectUuid}/access": { "get": { - "operationId": "GetOrganizationMemberByUuid", + "operationId": "GetProjectAccessList", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiOrganizationMemberProfile" + "$ref": "#/components/schemas/ApiProjectAccessListResponse" } } } @@ -12263,30 +15476,29 @@ } } }, - "description": "Get the member profile for a user in the current user's organization by uuid", - "tags": ["Organizations"], + "description": "Get access list for a project. This is a list of users that have been explictly granted access to the project.\nThere may be other users that have access to the project via their organization membership.", + "tags": ["Roles & Permissions", "Projects"], "security": [], "parameters": [ { - "description": "the uuid of the user", "in": "path", - "name": "userUuid", + "name": "projectUuid", "required": true, "schema": { - "$ref": "#/components/schemas/UUID" + "type": "string" } } ] }, - "patch": { - "operationId": "UpdateOrganizationMember", + "post": { + "operationId": "GrantProjectAccessToUser", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiOrganizationMemberProfile" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -12302,14 +15514,13 @@ } } }, - "description": "Updates the membership profile for a user in the current user's organization", - "tags": ["Roles & Permissions", "Organizations"], + "description": "Grant a user access to a project", + "tags": ["Roles & Permissions", "Projects"], "security": [], "parameters": [ { - "description": "the uuid of the user to update", "in": "path", - "name": "userUuid", + "name": "projectUuid", "required": true, "schema": { "type": "string" @@ -12317,29 +15528,27 @@ } ], "requestBody": { - "description": "the new membership profile", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OrganizationMemberProfileUpdate", - "description": "the new membership profile" + "$ref": "#/components/schemas/CreateProjectMember" } } } } } }, - "/api/v1/org/user/{userUuid}": { - "delete": { - "operationId": "DeleteOrganizationMember", + "/api/v1/projects/{projectUuid}/user/{userUuid}": { + "get": { + "operationId": "GetProjectMemberAccess", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiGetProjectMemberResponse" } } } @@ -12355,12 +15564,19 @@ } } }, - "description": "Deletes a user from the current user's organization", - "tags": ["Organizations"], + "description": "Get a project explicit member's access.\nThere may be users that have access to the project via their organization membership.\n\nNOTE:\nWe don't use the API on the frontend. Instead, we can call the API\nso that we make sure of the user's access to the project.", + "tags": ["Roles & Permissions", "Projects"], "security": [], "parameters": [ { - "description": "the uuid of the user to delete", + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { "in": "path", "name": "userUuid", "required": true, @@ -12371,16 +15587,16 @@ ] } }, - "/api/v1/org/allowedEmailDomains": { - "get": { - "operationId": "ListOrganizationEmailDomains", + "/api/v1/projects/{projectUuid}/access/{userUuid}": { + "patch": { + "operationId": "UpdateProjectAccessForUser", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiOrganizationAllowedEmailDomains" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -12396,63 +15612,47 @@ } } }, - "description": "Gets the allowed email domains for the current user's organization", - "tags": ["Organizations"], + "description": "Update a user's access to a project", + "tags": ["Roles & Permissions", "Projects"], "security": [], - "parameters": [] - }, - "patch": { - "operationId": "UpdateOrganizationEmailDomains", - "responses": { - "200": { - "description": "Ok", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiOrganizationAllowedEmailDomains" - } - } + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" } }, - "default": { - "description": "Error", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApiErrorPayload" - } - } + { + "in": "path", + "name": "userUuid", + "required": true, + "schema": { + "type": "string" } } - }, - "description": "Updates the allowed email domains for the current user's organization", - "tags": ["Organizations"], - "security": [], - "parameters": [], + ], "requestBody": { - "description": "the new allowed email domains", "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateAllowedEmailDomains", - "description": "the new allowed email domains" + "$ref": "#/components/schemas/UpdateProjectMember" } } } } - } - }, - "/api/v1/org/groups": { - "post": { - "operationId": "CreateGroupInOrganization", + }, + "delete": { + "operationId": "RevokeProjectAccessForUser", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGroupResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -12468,32 +15668,39 @@ } } }, - "description": "Creates a new group in the current user's organization", - "tags": ["Organizations"], + "description": "Remove a user's access to a project", + "tags": ["Roles & Permissions", "Projects"], "security": [], - "parameters": [], - "requestBody": { - "description": "the new group details", - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CreateGroup", - "description": "the new group details" - } + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + }, + { + "in": "path", + "name": "userUuid", + "required": true, + "schema": { + "type": "string" } } - } - }, + ] + } + }, + "/api/v1/projects/{projectUuid}/groupAccesses": { "get": { - "operationId": "ListGroupsInOrganization", + "operationId": "GetProjectGroupAccesses", "responses": { "200": { - "description": "Ok", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGroupListResponse" + "$ref": "#/components/schemas/ApiGetProjectGroupAccesses" } } } @@ -12509,33 +15716,42 @@ } } }, - "description": "Gets all the groups in the current user's organization", - "tags": ["Organizations"], + "description": "List group access for projects", + "tags": ["Projects"], "security": [], "parameters": [ { - "description": "number of members to include", - "in": "query", - "name": "includeMembers", - "required": false, + "in": "path", + "name": "projectUuid", + "required": true, "schema": { - "format": "double", - "type": "number" + "type": "string" } } ] } }, - "/api/v1/projects/{projectUuid}/pinned-lists/{pinnedListUuid}/items": { - "get": { - "operationId": "getPinnedItems", + "/api/v1/projects/{projectUuid}/sqlQuery": { + "post": { + "operationId": "RunSqlQuery", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiPinnedItems" + "properties": { + "results": { + "$ref": "#/components/schemas/ApiSqlQueryResults" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" } } } @@ -12551,41 +15767,50 @@ } } }, - "description": "Get pinned items", - "tags": ["Content"], + "description": "Run a raw sql query against the project's warehouse connection", + "tags": ["Exploring", "Projects"], "security": [], "parameters": [ { - "description": "project uuid", + "description": "The uuid of the project to run the query against", "in": "path", "name": "projectUuid", "required": true, "schema": { "type": "string" } - }, - { - "description": "the list uuid for the pinned items", - "in": "path", - "name": "pinnedListUuid", - "required": true, - "schema": { - "type": "string" + } + ], + "requestBody": { + "description": "The query to run", + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "sql": { + "type": "string" + } + }, + "required": ["sql"], + "type": "object", + "description": "The query to run" + } } } - ] + } } }, - "/api/v1/projects/{projectUuid}/pinned-lists/{pinnedListUuid}/items/order": { - "patch": { - "operationId": "updatePinnedItemsOrder", + "/api/v1/projects/{projectUuid}/calculate-total": { + "post": { + "operationId": "CalculateTotalFromQuery", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiPinnedItems" + "$ref": "#/components/schemas/ApiCalculateTotalResponse" } } } @@ -12601,56 +15826,55 @@ } } }, - "description": "Update pinned items order", - "tags": ["Content"], + "description": "Calculate all metric totals from a metricQuery", + "tags": ["Projects"], "security": [], "parameters": [ { - "description": "project uuid", + "description": "The uuid of the project to get charts for", "in": "path", "name": "projectUuid", "required": true, "schema": { "type": "string" } - }, - { - "description": "the list uuid for the pinned items", - "in": "path", - "name": "pinnedListUuid", - "required": true, - "schema": { - "type": "string" - } } ], "requestBody": { - "description": "the new order of the pinned items", + "description": "The metric query to calculate totals for", "required": true, "content": { "application/json": { "schema": { - "items": { - "$ref": "#/components/schemas/UpdatePinnedItemOrder" - }, - "type": "array", - "description": "the new order of the pinned items" + "$ref": "#/components/schemas/CalculateTotalFromQuery", + "description": "The metric query to calculate totals for" } } } } } }, - "/api/v1/projects/{projectUuid}": { + "/api/v1/projects/{projectUuid}/user-credentials": { "get": { - "operationId": "GetProject", + "operationId": "getUserWarehouseCredentialsPreference", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiProjectResponse" + "properties": { + "results": { + "$ref": "#/components/schemas/UserWarehouseCredentials" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["status"], + "type": "object" } } } @@ -12666,7 +15890,6 @@ } } }, - "description": "Get a project of an organiztion", "tags": ["Projects"], "security": [], "parameters": [ @@ -12681,16 +15904,16 @@ ] } }, - "/api/v1/projects/{projectUuid}/charts": { - "get": { - "operationId": "ListChartsInProject", + "/api/v1/projects/{projectUuid}/user-credentials/{userWarehouseCredentialsUuid}": { + "patch": { + "operationId": "updateUserWarehouseCredentialsPreference", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiChartListResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -12706,32 +15929,80 @@ } } }, - "description": "List all charts in a project", "tags": ["Projects"], "security": [], "parameters": [ { - "description": "The uuid of the project to get charts for", "in": "path", "name": "projectUuid", "required": true, "schema": { "type": "string" } + }, + { + "in": "path", + "name": "userWarehouseCredentialsUuid", + "required": true, + "schema": { + "type": "string" + } } ] } }, - "/api/v1/projects/{projectUuid}/chart-summaries": { + "/api/v1/projects/{projectUuid}/custom-metrics": { "get": { - "operationId": "ListChartSummariesInProject", + "operationId": "getCustomMetrics", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiChartSummaryListResponse" + "properties": { + "results": { + "items": { + "properties": { + "chartUrl": { + "type": "string" + }, + "chartLabel": { + "type": "string" + }, + "yml": { + "type": "string" + }, + "modelName": { + "type": "string" + }, + "label": { + "type": "string" + }, + "name": { + "type": "string" + } + }, + "required": [ + "chartUrl", + "chartLabel", + "yml", + "modelName", + "label", + "name" + ], + "type": "object" + }, + "type": "array" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" } } } @@ -12747,12 +16018,10 @@ } } }, - "description": "List all charts summaries in a project", "tags": ["Projects"], "security": [], "parameters": [ { - "description": "The uuid of the project to get charts for", "in": "path", "name": "projectUuid", "required": true, @@ -12763,16 +16032,16 @@ ] } }, - "/api/v1/projects/{projectUuid}/spaces": { - "get": { - "operationId": "ListSpacesInProject", + "/api/v1/projects/{projectUuid}/metadata": { + "patch": { + "operationId": "updateProjectMetadata", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSpaceSummaryListResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -12788,12 +16057,11 @@ } } }, - "description": "List all spaces in a project", + "description": "Update project metadata like upstreamProjectUuid\nwe don't trigger a compile, so not for updating warehouse or credentials", "tags": ["Projects"], "security": [], "parameters": [ { - "description": "The uuid of the project to get spaces for", "in": "path", "name": "projectUuid", "required": true, @@ -12801,17 +16069,29 @@ "type": "string" } } - ] - }, - "post": { - "operationId": "CreateSpaceInProject", + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateMetadata" + } + } + } + } + } + }, + "/api/v1/projects/{projectUuid}/semantic-layer-connection": { + "patch": { + "operationId": "updateProjectSemanticLayerConnection", "responses": { "200": { - "description": "Created", + "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSpaceResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -12827,12 +16107,10 @@ } } }, - "description": "Create a new space inside a project", - "tags": ["Roles & Permissions", "Spaces"], + "tags": ["Projects"], "security": [], "parameters": [ { - "description": "The uuid of the space's parent project", "in": "path", "name": "projectUuid", "required": true, @@ -12846,23 +16124,60 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateSpace" + "$ref": "#/components/schemas/SemanticLayerConnectionUpdate" + } + } + } + } + }, + "delete": { + "operationId": "deleteProjectSemanticLayerConnection", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiSuccessEmpty" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } } } } - } + }, + "tags": ["Projects"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "projectUuid", + "required": true, + "schema": { + "type": "string" + } + } + ] } }, - "/api/v1/projects/{projectUuid}/access": { + "/api/v1/projects/{projectUuid}/dashboards": { "get": { - "operationId": "GetProjectAccessList", + "operationId": "getDashboards", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiProjectAccessListResponse" + "$ref": "#/components/schemas/ApiGetDashboardsResponse" } } } @@ -12878,8 +16193,7 @@ } } }, - "description": "Get access list for a project. This is a list of users that have been explictly granted access to the project.\nThere may be other users that have access to the project via their organization membership.", - "tags": ["Roles & Permissions", "Projects"], + "tags": ["Projects"], "security": [], "parameters": [ { @@ -12893,14 +16207,14 @@ ] }, "post": { - "operationId": "GrantProjectAccessToUser", + "operationId": "createDashboard", "responses": { - "200": { - "description": "Success", + "201": { + "description": "Created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiCreateDashboardResponse" } } } @@ -12916,8 +16230,7 @@ } } }, - "description": "Grant a user access to a project", - "tags": ["Roles & Permissions", "Projects"], + "tags": ["Projects"], "security": [], "parameters": [ { @@ -12927,6 +16240,14 @@ "schema": { "type": "string" } + }, + { + "in": "query", + "name": "duplicateFrom", + "required": false, + "schema": { + "type": "string" + } } ], "requestBody": { @@ -12934,23 +16255,28 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CreateProjectMember" + "anyOf": [ + { + "$ref": "#/components/schemas/DuplicateDashboardParams" + }, + { + "$ref": "#/components/schemas/CreateDashboard" + } + ] } } } } - } - }, - "/api/v1/projects/{projectUuid}/user/{userUuid}": { - "get": { - "operationId": "GetProjectMemberAccess", + }, + "patch": { + "operationId": "updateDashboards", "responses": { "200": { - "description": "Success", + "description": "Updated", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGetProjectMemberResponse" + "$ref": "#/components/schemas/ApiUpdateDashboardsResponse" } } } @@ -12966,8 +16292,7 @@ } } }, - "description": "Get a project explicit member's access.\nThere may be users that have access to the project via their organization membership.\n\nNOTE:\nWe don't use the API on the frontend. Instead, we can call the API\nso that we make sure of the user's access to the project.", - "tags": ["Roles & Permissions", "Projects"], + "tags": ["Projects"], "security": [], "parameters": [ { @@ -12977,28 +16302,44 @@ "schema": { "type": "string" } - }, - { - "in": "path", - "name": "userUuid", - "required": true, - "schema": { - "type": "string" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "items": { + "$ref": "#/components/schemas/UpdateMultipleDashboards" + }, + "type": "array" + } } } - ] + } } }, - "/api/v1/projects/{projectUuid}/access/{userUuid}": { - "patch": { - "operationId": "UpdateProjectAccessForUser", + "/api/v1/projects/{projectUuid}/createPreview": { + "post": { + "operationId": "createPreview", "responses": { "200": { - "description": "Success", + "description": "Created", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "properties": { + "results": { + "type": "string" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" } } } @@ -13014,8 +16355,7 @@ } } }, - "description": "Update a user's access to a project", - "tags": ["Roles & Permissions", "Projects"], + "tags": ["Projects"], "security": [], "parameters": [ { @@ -13025,14 +16365,6 @@ "schema": { "type": "string" } - }, - { - "in": "path", - "name": "userUuid", - "required": true, - "schema": { - "type": "string" - } } ], "requestBody": { @@ -13040,17 +16372,28 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateProjectMember" + "properties": { + "copyContent": { + "type": "boolean" + }, + "name": { + "type": "string" + } + }, + "required": ["copyContent", "name"], + "type": "object" } } } } - }, - "delete": { - "operationId": "RevokeProjectAccessForUser", + } + }, + "/api/v1/projects/{projectUuid}/schedulerSettings": { + "patch": { + "operationId": "updateSchedulerSettings", "responses": { "200": { - "description": "Success", + "description": "Updated", "content": { "application/json": { "schema": { @@ -13070,8 +16413,7 @@ } } }, - "description": "Remove a user's access to a project", - "tags": ["Roles & Permissions", "Projects"], + "tags": ["Projects"], "security": [], "parameters": [ { @@ -13081,28 +16423,30 @@ "schema": { "type": "string" } - }, - { - "in": "path", - "name": "userUuid", - "required": true, - "schema": { - "type": "string" + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/UpdateSchedulerSettings" + } } } - ] + } } }, - "/api/v1/projects/{projectUuid}/groupAccesses": { - "get": { - "operationId": "GetProjectGroupAccesses", + "/api/v1/projects/{projectUuid}/tags": { + "post": { + "operationId": "createTag", "responses": { - "200": { + "201": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiGetProjectGroupAccesses" + "$ref": "#/components/schemas/ApiCreateTagResponse" } } } @@ -13118,7 +16462,6 @@ } } }, - "description": "List group access for projects", "tags": ["Projects"], "security": [], "parameters": [ @@ -13130,30 +16473,27 @@ "type": "string" } } - ] - } - }, - "/api/v1/projects/{projectUuid}/sqlQuery": { - "post": { - "operationId": "RunSqlQuery", + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pick_Tag.name-or-color_" + } + } + } + } + }, + "get": { + "operationId": "getTags", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/ApiSqlQueryResults" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "$ref": "#/components/schemas/ApiGetTagsResponse" } } } @@ -13169,12 +16509,10 @@ } } }, - "description": "Run a raw sql query against the project's warehouse connection", - "tags": ["Exploring", "Projects"], + "tags": ["Projects"], "security": [], "parameters": [ { - "description": "The uuid of the project to run the query against", "in": "path", "name": "projectUuid", "required": true, @@ -13182,37 +16520,19 @@ "type": "string" } } - ], - "requestBody": { - "description": "The query to run", - "required": true, - "content": { - "application/json": { - "schema": { - "properties": { - "sql": { - "type": "string" - } - }, - "required": ["sql"], - "type": "object", - "description": "The query to run" - } - } - } - } + ] } }, - "/api/v1/projects/{projectUuid}/calculate-total": { - "post": { - "operationId": "CalculateTotalFromQuery", + "/api/v1/projects/{projectUuid}/tags/{tagUuid}": { + "delete": { + "operationId": "deleteTag", "responses": { - "200": { - "description": "Success", + "204": { + "description": "Deleted", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiCalculateTotalResponse" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -13228,55 +16548,28 @@ } } }, - "description": "Calculate all metric totals from a metricQuery", "tags": ["Projects"], "security": [], "parameters": [ { - "description": "The uuid of the project to get charts for", "in": "path", - "name": "projectUuid", + "name": "tagUuid", "required": true, "schema": { "type": "string" } } - ], - "requestBody": { - "description": "The metric query to calculate totals for", - "required": true, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CalculateTotalFromQuery", - "description": "The metric query to calculate totals for" - } - } - } - } - } - }, - "/api/v1/projects/{projectUuid}/user-credentials": { - "get": { - "operationId": "getUserWarehouseCredentialsPreference", + ] + }, + "patch": { + "operationId": "updateTag", "responses": { "200": { - "description": "Success", + "description": "Updated", "content": { "application/json": { "schema": { - "properties": { - "results": { - "$ref": "#/components/schemas/UserWarehouseCredentials" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["status"], - "type": "object" + "$ref": "#/components/schemas/ApiSuccessEmpty" } } } @@ -13297,25 +16590,35 @@ "parameters": [ { "in": "path", - "name": "projectUuid", + "name": "tagUuid", "required": true, "schema": { "type": "string" } } - ] + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DbTagUpdate" + } + } + } + } } }, - "/api/v1/projects/{projectUuid}/user-credentials/{userWarehouseCredentialsUuid}": { - "patch": { - "operationId": "updateUserWarehouseCredentialsPreference", + "/api/v1/projects/{projectUuid}/charts/code": { + "get": { + "operationId": "getChartsAsCode", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiChartAsCodeListResponse" } } } @@ -13331,6 +16634,7 @@ } } }, + "description": "Charts as code", "tags": ["Projects"], "security": [], "parameters": [ @@ -13341,70 +16645,20 @@ "schema": { "type": "string" } - }, - { - "in": "path", - "name": "userWarehouseCredentialsUuid", - "required": true, - "schema": { - "type": "string" - } } ] } }, - "/api/v1/projects/{projectUuid}/custom-metrics": { + "/api/v1/projects/{projectUuid}/dashboards/code": { "get": { - "operationId": "getCustomMetrics", + "operationId": "getDashboardsAsCode", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "properties": { - "results": { - "items": { - "properties": { - "chartUrl": { - "type": "string" - }, - "chartLabel": { - "type": "string" - }, - "yml": { - "type": "string" - }, - "modelName": { - "type": "string" - }, - "label": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "chartUrl", - "chartLabel", - "yml", - "modelName", - "label", - "name" - ], - "type": "object" - }, - "type": "array" - }, - "status": { - "type": "string", - "enum": ["ok"], - "nullable": false - } - }, - "required": ["results", "status"], - "type": "object" + "$ref": "#/components/schemas/ApiDashboardAsCodeListResponse" } } } @@ -13434,16 +16688,16 @@ ] } }, - "/api/v1/projects/{projectUuid}/metadata": { - "patch": { - "operationId": "updateProjectMetadata", + "/api/v1/projects/{projectUuid}/charts/{slug}/code": { + "post": { + "operationId": "upsertChartAsCode", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiChartAsCodeUpsertResponse" } } } @@ -13459,7 +16713,6 @@ } } }, - "description": "Update project metadata like upstreamProjectUuid\nwe don't trigger a compile, so not for updating warehouse or credentials", "tags": ["Projects"], "security": [], "parameters": [ @@ -13470,6 +16723,14 @@ "schema": { "type": "string" } + }, + { + "in": "path", + "name": "slug", + "required": true, + "schema": { + "type": "string" + } } ], "requestBody": { @@ -13477,23 +16738,38 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/UpdateMetadata" + "allOf": [ + { + "$ref": "#/components/schemas/Omit_ChartAsCode.metricQuery-or-chartConfig_" + }, + { + "properties": { + "metricQuery": {}, + "chartConfig": {} + }, + "required": [ + "metricQuery", + "chartConfig" + ], + "type": "object" + } + ] } } } } } }, - "/api/v1/projects/{projectUuid}/semantic-layer-connection": { - "patch": { - "operationId": "updateProjectSemanticLayerConnection", + "/api/v1/projects/{projectUuid}/dashboards/{slug}/code": { + "post": { + "operationId": "upsertDashboardAsCode", "responses": { "200": { "description": "Success", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApiSuccessEmpty" + "$ref": "#/components/schemas/ApiDashboardAsCodeUpsertResponse" } } } @@ -13519,6 +16795,14 @@ "schema": { "type": "string" } + }, + { + "in": "path", + "name": "slug", + "required": true, + "schema": { + "type": "string" + } } ], "requestBody": { @@ -13526,7 +16810,23 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SemanticLayerConnection" + "allOf": [ + { + "$ref": "#/components/schemas/Omit_DashboardAsCode.filters-or-tiles-or-description_" + }, + { + "properties": { + "description": { + "type": "string", + "nullable": true + }, + "tiles": {}, + "filters": {} + }, + "required": ["tiles", "filters"], + "type": "object" + } + ] } } } @@ -14118,6 +17418,88 @@ ] } }, + "/api/v1/saved/{chartUuid}/downloadCsv": { + "post": { + "operationId": "DownloadCsvFromSavedChart", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "properties": { + "jobId": { + "type": "string" + } + }, + "required": ["jobId"], + "type": "object" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Download a CSV from a saved chart uuid", + "tags": ["Charts"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "chartUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "csvLimit": { + "type": "number", + "format": "double", + "nullable": true + }, + "onlyRaw": { + "type": "boolean" + }, + "tileUuid": { + "type": "string" + }, + "dashboardFilters": {} + }, + "required": ["onlyRaw", "dashboardFilters"], + "type": "object" + } + } + } + } + } + }, "/api/v1/schedulers/{projectUuid}/logs": { "get": { "operationId": "getSchedulerLogs", @@ -14592,7 +17974,16 @@ "description": "Get slack channels", "tags": ["Integrations"], "security": [], - "parameters": [] + "parameters": [ + { + "in": "query", + "name": "search", + "required": false, + "schema": { + "type": "string" + } + } + ] } }, "/api/v1/slack/custom-settings": { @@ -15702,6 +19093,74 @@ ] } }, + "/api/v1/user/me/personal-access-tokens/{personalAccessTokenUuid}/rotate": { + "patch": { + "operationId": "Rotate personal access token", + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "properties": { + "results": { + "$ref": "#/components/schemas/PersonalAccessTokenWithToken" + }, + "status": { + "type": "string", + "enum": ["ok"], + "nullable": false + } + }, + "required": ["results", "status"], + "type": "object" + } + } + } + }, + "default": { + "description": "Error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApiErrorPayload" + } + } + } + } + }, + "description": "Rotate personal access token", + "tags": ["My Account"], + "security": [], + "parameters": [ + { + "in": "path", + "name": "personalAccessTokenUuid", + "required": true, + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "expiresAt": { + "type": "string", + "format": "date-time" + } + }, + "required": ["expiresAt"], + "type": "object" + } + } + } + } + } + }, "/api/v1/projects/{projectUuid}/validate": { "post": { "operationId": "ValidateProject", diff --git a/pyproject.toml b/pyproject.toml index a307416..f9eabbe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -10,7 +10,7 @@ exclude = [ ".github/", ".gitignore", ".pre-commit-config.yaml", - ".style.yapf", + "ruff.toml", ".pylintrc", ".pypirc", "Makefile", @@ -24,7 +24,7 @@ name = "lightdash-client-python" authors = [{name = "yu-iskw"}] readme = "README.md" license = {file = "LICENSE"} -requires-python = ">=3.8.0,<4" +requires-python = ">=3.9,<3.13" classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Information Technology", @@ -36,10 +36,10 @@ classifiers = [ "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3 :: Only", - "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", "Typing :: Typed", ] dynamic = ["version", "description"] @@ -54,18 +54,17 @@ Home = "https://github.com/yu-iskw/lightdash-client-python" [project.optional-dependencies] test = [ - "pytest >=6.2.4,<7.0.0", + "pytest >=8.0,<9.0", +] +dev = [ "pylint >=2.12.0", - "mypy >=0.910,<1.0", "flake8 >=3.8.3,<4.0.0", + "mypy >=0.910,<1.0", "black >=20.0", "isort >=5.0.6,<6.0.0", - "yapf >=0.29.0", -] -dev = [ - "flit ==3.7.1", + "flit ==3.10.1", "build ==0.7.0", - "yapf >=0.29.0", + "ruff >=0.8,<1.0", "pyyaml >=5.3", "pdoc3 >=0.9.2", "pre-commit >=2.15.0", diff --git a/ruff.toml b/ruff.toml new file mode 100644 index 0000000..e642384 --- /dev/null +++ b/ruff.toml @@ -0,0 +1,6 @@ +# Start of Selection +line-length = 120 +indent-width = 4 + +[format] +quote-style = "double"