diff --git a/docs/.gitignore b/docs/.gitignore index 90904a9ff46..80249d7797b 100644 --- a/docs/.gitignore +++ b/docs/.gitignore @@ -31,5 +31,9 @@ static/badges/ # Source of truth is in superset/db_engine_specs/*.py metadata attributes docs/databases/ +# Generated API documentation (regenerated at build time from openapi.json) +# Source of truth is static/resources/openapi.json +docs/api/ + # Note: src/data/databases.json is COMMITTED (not ignored) to preserve feature diagnostics # that require Flask context to generate. Update it locally with: npm run gen-db-docs diff --git a/docs/docs/api.mdx b/docs/docs/api.mdx index 52f6be851bd..ff563805a8e 100644 --- a/docs/docs/api.mdx +++ b/docs/docs/api.mdx @@ -1,40 +1,590 @@ --- -title: API +title: API Reference hide_title: true sidebar_position: 10 --- -import SwaggerUI from 'swagger-ui-react'; -import openapi from '/resources/openapi.json'; -import 'swagger-ui-react/swagger-ui.css'; import { Alert } from 'antd'; -## API +## REST API Reference -Superset's public **REST API** follows the -[OpenAPI specification](https://swagger.io/specification/), and is -documented here. The docs below are generated using -[Swagger React UI](https://www.npmjs.com/package/swagger-ui-react). - -:::resources -- [Blog: The Superset REST API](https://preset.io/blog/2020-10-01-superset-api/) -- [Blog: Accessing APIs with Superset](https://preset.io/blog/accessing-apis-with-superset/) -::: +Superset exposes a comprehensive **REST API** that follows the [OpenAPI specification](https://swagger.io/specification/). +You can use this API to programmatically interact with Superset for automation, integrations, and custom applications. - NOTE! - You can find an interactive version of this documentation on your local Superset - instance at /swagger/v1 (unless disabled) - + showIcon + message="Code Samples & Schema Documentation" + description={ + + Each endpoint includes ready-to-use code samples in cURL, Python, and JavaScript. + The sidebar includes Schema definitions for detailed data model documentation. + } + style={{ marginBottom: '24px' }} /> -
-
-
-
- -
+--- + +### Authentication + +Most API endpoints require authentication via JWT tokens. + +#### Quick Start + +```bash +# 1. Get a JWT token +curl -X POST http://localhost:8088/api/v1/security/login \ + -H "Content-Type: application/json" \ + -d '{"username": "admin", "password": "admin", "provider": "db"}' + +# 2. Use the access_token from the response +curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ + http://localhost:8088/api/v1/dashboard/ +``` + +#### Security Endpoints + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get the CSRF token](./api/get-the-csrf-token) | `/api/v1/security/csrf_token/` | +| `POST` | [Get a guest token](./api/get-a-guest-token) | `/api/v1/security/guest_token/` | +| `POST` | [Create security login](./api/create-security-login) | `/api/v1/security/login` | +| `POST` | [Create security refresh](./api/create-security-refresh) | `/api/v1/security/refresh` | + +--- + +### API Endpoints + +#### Core Resources + +
+Dashboards (26 endpoints) — Create, read, update, and delete dashboards. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `DELETE` | [Bulk delete dashboards](./api/bulk-delete-dashboards) | `/api/v1/dashboard/` | +| `GET` | [Get a list of dashboards](./api/get-a-list-of-dashboards) | `/api/v1/dashboard/` | +| `POST` | [Create a new dashboard](./api/create-a-new-dashboard) | `/api/v1/dashboard/` | +| `GET` | [Get metadata information about this API resource (dashboard--info)](./api/get-metadata-information-about-this-api-resource-dashboard-info) | `/api/v1/dashboard/_info` | +| `GET` | [Get a dashboard detail information](./api/get-a-dashboard-detail-information) | `/api/v1/dashboard/{id_or_slug}` | +| `GET` | [Get a dashboard's chart definitions.](./api/get-a-dashboards-chart-definitions) | `/api/v1/dashboard/{id_or_slug}/charts` | +| `POST` | [Create a copy of an existing dashboard](./api/create-a-copy-of-an-existing-dashboard) | `/api/v1/dashboard/{id_or_slug}/copy/` | +| `GET` | [Get dashboard's datasets](./api/get-dashboards-datasets) | `/api/v1/dashboard/{id_or_slug}/datasets` | +| `DELETE` | [Delete a dashboard's embedded configuration](./api/delete-a-dashboards-embedded-configuration) | `/api/v1/dashboard/{id_or_slug}/embedded` | +| `GET` | [Get the dashboard's embedded configuration](./api/get-the-dashboards-embedded-configuration) | `/api/v1/dashboard/{id_or_slug}/embedded` | +| `POST` | [Set a dashboard's embedded configuration](./api/set-a-dashboards-embedded-configuration) | `/api/v1/dashboard/{id_or_slug}/embedded` | +| `PUT` | [Update dashboard by id_or_slug embedded](./api/update-dashboard-by-id-or-slug-embedded) | `/api/v1/dashboard/{id_or_slug}/embedded` | +| `GET` | [Get dashboard's tabs](./api/get-dashboards-tabs) | `/api/v1/dashboard/{id_or_slug}/tabs` | +| `DELETE` | [Delete a dashboard](./api/delete-a-dashboard) | `/api/v1/dashboard/{pk}` | +| `PUT` | [Update a dashboard](./api/update-a-dashboard) | `/api/v1/dashboard/{pk}` | +| `POST` | [Compute and cache a screenshot (dashboard-pk-cache-dashboard-screenshot)](./api/compute-and-cache-a-screenshot-dashboard-pk-cache-dashboard-screenshot) | `/api/v1/dashboard/{pk}/cache_dashboard_screenshot/` | +| `PUT` | [Update colors configuration for a dashboard.](./api/update-colors-configuration-for-a-dashboard) | `/api/v1/dashboard/{pk}/colors` | +| `DELETE` | [Remove the dashboard from the user favorite list](./api/remove-the-dashboard-from-the-user-favorite-list) | `/api/v1/dashboard/{pk}/favorites/` | +| `POST` | [Mark the dashboard as favorite for the current user](./api/mark-the-dashboard-as-favorite-for-the-current-user) | `/api/v1/dashboard/{pk}/favorites/` | +| `PUT` | [Update native filters configuration for a dashboard.](./api/update-native-filters-configuration-for-a-dashboard) | `/api/v1/dashboard/{pk}/filters` | +| `GET` | [Get a computed screenshot from cache (dashboard-pk-screenshot-digest)](./api/get-a-computed-screenshot-from-cache-dashboard-pk-screenshot-digest) | `/api/v1/dashboard/{pk}/screenshot/{digest}/` | +| `GET` | [Get dashboard's thumbnail](./api/get-dashboards-thumbnail) | `/api/v1/dashboard/{pk}/thumbnail/{digest}/` | +| `GET` | [Download multiple dashboards as YAML files](./api/download-multiple-dashboards-as-yaml-files) | `/api/v1/dashboard/export/` | +| `GET` | [Check favorited dashboards for current user](./api/check-favorited-dashboards-for-current-user) | `/api/v1/dashboard/favorite_status/` | +| `POST` | [Import dashboard(s) with associated charts/datasets/databases](./api/import-dashboard-s-with-associated-charts-datasets-databases) | `/api/v1/dashboard/import/` | +| `GET` | [Get related fields data (dashboard-related-column-name)](./api/get-related-fields-data-dashboard-related-column-name) | `/api/v1/dashboard/related/{column_name}` | + +
+ +
+Charts (20 endpoints) — Create, read, update, and delete charts (slices). + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `DELETE` | [Bulk delete charts](./api/bulk-delete-charts) | `/api/v1/chart/` | +| `GET` | [Get a list of charts](./api/get-a-list-of-charts) | `/api/v1/chart/` | +| `POST` | [Create a new chart](./api/create-a-new-chart) | `/api/v1/chart/` | +| `GET` | [Get metadata information about this API resource (chart--info)](./api/get-metadata-information-about-this-api-resource-chart-info) | `/api/v1/chart/_info` | +| `DELETE` | [Delete a chart](./api/delete-a-chart) | `/api/v1/chart/{pk}` | +| `GET` | [Get a chart detail information](./api/get-a-chart-detail-information) | `/api/v1/chart/{pk}` | +| `PUT` | [Update a chart](./api/update-a-chart) | `/api/v1/chart/{pk}` | +| `GET` | [Compute and cache a screenshot (chart-pk-cache-screenshot)](./api/compute-and-cache-a-screenshot-chart-pk-cache-screenshot) | `/api/v1/chart/{pk}/cache_screenshot/` | +| `GET` | [Return payload data response for a chart](./api/return-payload-data-response-for-a-chart) | `/api/v1/chart/{pk}/data/` | +| `DELETE` | [Remove the chart from the user favorite list](./api/remove-the-chart-from-the-user-favorite-list) | `/api/v1/chart/{pk}/favorites/` | +| `POST` | [Mark the chart as favorite for the current user](./api/mark-the-chart-as-favorite-for-the-current-user) | `/api/v1/chart/{pk}/favorites/` | +| `GET` | [Get a computed screenshot from cache (chart-pk-screenshot-digest)](./api/get-a-computed-screenshot-from-cache-chart-pk-screenshot-digest) | `/api/v1/chart/{pk}/screenshot/{digest}/` | +| `GET` | [Get chart thumbnail](./api/get-chart-thumbnail) | `/api/v1/chart/{pk}/thumbnail/{digest}/` | +| `POST` | [Return payload data response for the given query (chart-data)](./api/return-payload-data-response-for-the-given-query-chart-data) | `/api/v1/chart/data` | +| `GET` | [Return payload data response for the given query (chart-data-cache-key)](./api/return-payload-data-response-for-the-given-query-chart-data-cache-key) | `/api/v1/chart/data/{cache_key}` | +| `GET` | [Download multiple charts as YAML files](./api/download-multiple-charts-as-yaml-files) | `/api/v1/chart/export/` | +| `GET` | [Check favorited charts for current user](./api/check-favorited-charts-for-current-user) | `/api/v1/chart/favorite_status/` | +| `POST` | [Import chart(s) with associated datasets and databases](./api/import-chart-s-with-associated-datasets-and-databases) | `/api/v1/chart/import/` | +| `GET` | [Get related fields data (chart-related-column-name)](./api/get-related-fields-data-chart-related-column-name) | `/api/v1/chart/related/{column_name}` | +| `PUT` | [Warm up the cache for the chart](./api/warm-up-the-cache-for-the-chart) | `/api/v1/chart/warm_up_cache` | + +
+ +
+Datasets (18 endpoints) — Manage datasets (tables) used for building charts. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `DELETE` | [Bulk delete datasets](./api/bulk-delete-datasets) | `/api/v1/dataset/` | +| `GET` | [Get a list of datasets](./api/get-a-list-of-datasets) | `/api/v1/dataset/` | +| `POST` | [Create a new dataset](./api/create-a-new-dataset) | `/api/v1/dataset/` | +| `GET` | [Get metadata information about this API resource (dataset--info)](./api/get-metadata-information-about-this-api-resource-dataset-info) | `/api/v1/dataset/_info` | +| `DELETE` | [Delete a dataset](./api/delete-a-dataset) | `/api/v1/dataset/{pk}` | +| `GET` | [Get a dataset](./api/get-a-dataset) | `/api/v1/dataset/{pk}` | +| `PUT` | [Update a dataset](./api/update-a-dataset) | `/api/v1/dataset/{pk}` | +| `DELETE` | [Delete a dataset column](./api/delete-a-dataset-column) | `/api/v1/dataset/{pk}/column/{column_id}` | +| `DELETE` | [Delete a dataset metric](./api/delete-a-dataset-metric) | `/api/v1/dataset/{pk}/metric/{metric_id}` | +| `PUT` | [Refresh and update columns of a dataset](./api/refresh-and-update-columns-of-a-dataset) | `/api/v1/dataset/{pk}/refresh` | +| `GET` | [Get charts and dashboards count associated to a dataset](./api/get-charts-and-dashboards-count-associated-to-a-dataset) | `/api/v1/dataset/{pk}/related_objects` | +| `GET` | [Get distinct values from field data (dataset-distinct-column-name)](./api/get-distinct-values-from-field-data-dataset-distinct-column-name) | `/api/v1/dataset/distinct/{column_name}` | +| `POST` | [Duplicate a dataset](./api/duplicate-a-dataset) | `/api/v1/dataset/duplicate` | +| `GET` | [Download multiple datasets as YAML files](./api/download-multiple-datasets-as-yaml-files) | `/api/v1/dataset/export/` | +| `POST` | [Retrieve a table by name, or create it if it does not exist](./api/retrieve-a-table-by-name-or-create-it-if-it-does-not-exist) | `/api/v1/dataset/get_or_create/` | +| `POST` | [Import dataset(s) with associated databases](./api/import-dataset-s-with-associated-databases) | `/api/v1/dataset/import/` | +| `GET` | [Get related fields data (dataset-related-column-name)](./api/get-related-fields-data-dataset-related-column-name) | `/api/v1/dataset/related/{column_name}` | +| `PUT` | [Warm up the cache for each chart powered by the given table](./api/warm-up-the-cache-for-each-chart-powered-by-the-given-table) | `/api/v1/dataset/warm_up_cache` | + +
+ +
+Database (31 endpoints) — Manage database connections and metadata. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get a list of databases](./api/get-a-list-of-databases) | `/api/v1/database/` | +| `POST` | [Create a new database](./api/create-a-new-database) | `/api/v1/database/` | +| `GET` | [Get metadata information about this API resource (database--info)](./api/get-metadata-information-about-this-api-resource-database-info) | `/api/v1/database/_info` | +| `DELETE` | [Delete a database](./api/delete-a-database) | `/api/v1/database/{pk}` | +| `GET` | [Get a database](./api/get-a-database) | `/api/v1/database/{pk}` | +| `PUT` | [Change a database](./api/change-a-database) | `/api/v1/database/{pk}` | +| `GET` | [Get all catalogs from a database](./api/get-all-catalogs-from-a-database) | `/api/v1/database/{pk}/catalogs/` | +| `GET` | [Get a database connection info](./api/get-a-database-connection-info) | `/api/v1/database/{pk}/connection` | +| `GET` | [Get function names supported by a database](./api/get-function-names-supported-by-a-database) | `/api/v1/database/{pk}/function_names/` | +| `GET` | [Get charts and dashboards count associated to a database](./api/get-charts-and-dashboards-count-associated-to-a-database) | `/api/v1/database/{pk}/related_objects/` | +| `GET` | [The list of the database schemas where to upload information](./api/the-list-of-the-database-schemas-where-to-upload-information) | `/api/v1/database/{pk}/schemas_access_for_file_upload/` | +| `GET` | [Get all schemas from a database](./api/get-all-schemas-from-a-database) | `/api/v1/database/{pk}/schemas/` | +| `GET` | [Get database select star for table (database-pk-select-star-table-name)](./api/get-database-select-star-for-table-database-pk-select-star-table-name) | `/api/v1/database/{pk}/select_star/{table_name}/` | +| `GET` | [Get database select star for table (database-pk-select-star-table-name-schema-name)](./api/get-database-select-star-for-table-database-pk-select-star-table-name-schema-name) | `/api/v1/database/{pk}/select_star/{table_name}/{schema_name}/` | +| `DELETE` | [Delete a SSH tunnel](./api/delete-a-ssh-tunnel) | `/api/v1/database/{pk}/ssh_tunnel/` | +| `POST` | [Re-sync all permissions for a database connection](./api/re-sync-all-permissions-for-a-database-connection) | `/api/v1/database/{pk}/sync_permissions/` | +| `GET` | [Get table extra metadata (database-pk-table-extra-table-name-schema-name)](./api/get-table-extra-metadata-database-pk-table-extra-table-name-schema-name) | `/api/v1/database/{pk}/table_extra/{table_name}/{schema_name}/` | +| `GET` | [Get table metadata](./api/get-table-metadata) | `/api/v1/database/{pk}/table_metadata/` | +| `GET` | [Get table extra metadata (database-pk-table-metadata-extra)](./api/get-table-extra-metadata-database-pk-table-metadata-extra) | `/api/v1/database/{pk}/table_metadata/extra/` | +| `GET` | [Get database table metadata](./api/get-database-table-metadata) | `/api/v1/database/{pk}/table/{table_name}/{schema_name}/` | +| `GET` | [Get a list of tables for given database](./api/get-a-list-of-tables-for-given-database) | `/api/v1/database/{pk}/tables/` | +| `POST` | [Upload a file to a database table](./api/upload-a-file-to-a-database-table) | `/api/v1/database/{pk}/upload/` | +| `POST` | [Validate arbitrary SQL](./api/validate-arbitrary-sql) | `/api/v1/database/{pk}/validate_sql/` | +| `GET` | [Get names of databases currently available](./api/get-names-of-databases-currently-available) | `/api/v1/database/available/` | +| `GET` | [Download database(s) and associated dataset(s) as a zip file](./api/download-database-s-and-associated-dataset-s-as-a-zip-file) | `/api/v1/database/export/` | +| `POST` | [Import database(s) with associated datasets](./api/import-database-s-with-associated-datasets) | `/api/v1/database/import/` | +| `GET` | [Receive personal access tokens from OAuth2](./api/receive-personal-access-tokens-from-o-auth-2) | `/api/v1/database/oauth2/` | +| `GET` | [Get related fields data (database-related-column-name)](./api/get-related-fields-data-database-related-column-name) | `/api/v1/database/related/{column_name}` | +| `POST` | [Test a database connection](./api/test-a-database-connection) | `/api/v1/database/test_connection/` | +| `POST` | [Upload a file and returns file metadata](./api/upload-a-file-and-returns-file-metadata) | `/api/v1/database/upload_metadata/` | +| `POST` | [Validate database connection parameters](./api/validate-database-connection-parameters) | `/api/v1/database/validate_parameters/` | + +
+ +#### Data Exploration + +
+Explore (1 endpoints) — Chart exploration and data querying endpoints. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Assemble Explore related information in a single endpoint](./api/assemble-explore-related-information-in-a-single-endpoint) | `/api/v1/explore/` | + +
+ +
+SQL Lab (6 endpoints) — Execute SQL queries and manage SQL Lab sessions. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get the bootstrap data for SqlLab page](./api/get-the-bootstrap-data-for-sql-lab-page) | `/api/v1/sqllab/` | +| `POST` | [Estimate the SQL query execution cost](./api/estimate-the-sql-query-execution-cost) | `/api/v1/sqllab/estimate/` | +| `POST` | [Execute a SQL query](./api/execute-a-sql-query) | `/api/v1/sqllab/execute/` | +| `GET` | [Export the SQL query results to a CSV](./api/export-the-sql-query-results-to-a-csv) | `/api/v1/sqllab/export/{client_id}/` | +| `POST` | [Format SQL code](./api/format-sql-code) | `/api/v1/sqllab/format_sql/` | +| `GET` | [Get the result of a SQL query execution](./api/get-the-result-of-a-sql-query-execution) | `/api/v1/sqllab/results/` | + +
+ +
+Queries (17 endpoints) — View and manage SQL Lab query history. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get a list of queries](./api/get-a-list-of-queries) | `/api/v1/query/` | +| `GET` | [Get query detail information](./api/get-query-detail-information) | `/api/v1/query/{pk}` | +| `GET` | [Get distinct values from field data (query-distinct-column-name)](./api/get-distinct-values-from-field-data-query-distinct-column-name) | `/api/v1/query/distinct/{column_name}` | +| `GET` | [Get related fields data (query-related-column-name)](./api/get-related-fields-data-query-related-column-name) | `/api/v1/query/related/{column_name}` | +| `POST` | [Manually stop a query with client_id](./api/manually-stop-a-query-with-client-id) | `/api/v1/query/stop` | +| `GET` | [Get a list of queries that changed after last_updated_ms](./api/get-a-list-of-queries-that-changed-after-last-updated-ms) | `/api/v1/query/updated_since` | +| `DELETE` | [Bulk delete saved queries](./api/bulk-delete-saved-queries) | `/api/v1/saved_query/` | +| `GET` | [Get a list of saved queries](./api/get-a-list-of-saved-queries) | `/api/v1/saved_query/` | +| `POST` | [Create a saved query](./api/create-a-saved-query) | `/api/v1/saved_query/` | +| `GET` | [Get metadata information about this API resource (saved-query--info)](./api/get-metadata-information-about-this-api-resource-saved-query-info) | `/api/v1/saved_query/_info` | +| `DELETE` | [Delete a saved query](./api/delete-a-saved-query) | `/api/v1/saved_query/{pk}` | +| `GET` | [Get a saved query](./api/get-a-saved-query) | `/api/v1/saved_query/{pk}` | +| `PUT` | [Update a saved query](./api/update-a-saved-query) | `/api/v1/saved_query/{pk}` | +| `GET` | [Get distinct values from field data (saved-query-distinct-column-name)](./api/get-distinct-values-from-field-data-saved-query-distinct-column-name) | `/api/v1/saved_query/distinct/{column_name}` | +| `GET` | [Download multiple saved queries as YAML files](./api/download-multiple-saved-queries-as-yaml-files) | `/api/v1/saved_query/export/` | +| `POST` | [Import saved queries with associated databases](./api/import-saved-queries-with-associated-databases) | `/api/v1/saved_query/import/` | +| `GET` | [Get related fields data (saved-query-related-column-name)](./api/get-related-fields-data-saved-query-related-column-name) | `/api/v1/saved_query/related/{column_name}` | + +
+ +
+Datasources (1 endpoints) — Query datasource metadata and column values. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get possible values for a datasource column](./api/get-possible-values-for-a-datasource-column) | `/api/v1/datasource/{datasource_type}/{datasource_id}/column/{column_name}/values/` | + +
+ +
+Advanced Data Type (2 endpoints) — Endpoints for advanced data type operations and conversions. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Return an AdvancedDataTypeResponse](./api/return-an-advanced-data-type-response) | `/api/v1/advanced_data_type/convert` | +| `GET` | [Return a list of available advanced data types](./api/return-a-list-of-available-advanced-data-types) | `/api/v1/advanced_data_type/types` | + +
+ +#### Organization & Customization + +
+Tags (15 endpoints) — Organize assets with tags. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `DELETE` | [Bulk delete tags](./api/bulk-delete-tags) | `/api/v1/tag/` | +| `GET` | [Get a list of tags](./api/get-a-list-of-tags) | `/api/v1/tag/` | +| `POST` | [Create a tag](./api/create-a-tag) | `/api/v1/tag/` | +| `GET` | [Get metadata information about tag API endpoints](./api/get-metadata-information-about-tag-api-endpoints) | `/api/v1/tag/_info` | +| `POST` | [Add tags to an object](./api/add-tags-to-an-object) | `/api/v1/tag/{object_type}/{object_id}/` | +| `DELETE` | [Delete a tagged object](./api/delete-a-tagged-object) | `/api/v1/tag/{object_type}/{object_id}/{tag}/` | +| `DELETE` | [Delete a tag](./api/delete-a-tag) | `/api/v1/tag/{pk}` | +| `GET` | [Get a tag detail information](./api/get-a-tag-detail-information) | `/api/v1/tag/{pk}` | +| `PUT` | [Update a tag](./api/update-a-tag) | `/api/v1/tag/{pk}` | +| `DELETE` | [Delete tag by pk favorites](./api/delete-tag-by-pk-favorites) | `/api/v1/tag/{pk}/favorites/` | +| `POST` | [Create tag by pk favorites](./api/create-tag-by-pk-favorites) | `/api/v1/tag/{pk}/favorites/` | +| `POST` | [Bulk create tags and tagged objects](./api/bulk-create-tags-and-tagged-objects) | `/api/v1/tag/bulk_create` | +| `GET` | [Get tag favorite status](./api/get-tag-favorite-status) | `/api/v1/tag/favorite_status/` | +| `GET` | [Get all objects associated with a tag](./api/get-all-objects-associated-with-a-tag) | `/api/v1/tag/get_objects/` | +| `GET` | [Get related fields data (tag-related-column-name)](./api/get-related-fields-data-tag-related-column-name) | `/api/v1/tag/related/{column_name}` | + +
+ +
+Annotation Layers (14 endpoints) — Manage annotation layers and annotations for charts. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `DELETE` | [Delete multiple annotation layers in a bulk operation](./api/delete-multiple-annotation-layers-in-a-bulk-operation) | `/api/v1/annotation_layer/` | +| `GET` | [Get a list of annotation layers (annotation-layer)](./api/get-a-list-of-annotation-layers-annotation-layer) | `/api/v1/annotation_layer/` | +| `POST` | [Create an annotation layer (annotation-layer)](./api/create-an-annotation-layer-annotation-layer) | `/api/v1/annotation_layer/` | +| `GET` | [Get metadata information about this API resource (annotation-layer--info)](./api/get-metadata-information-about-this-api-resource-annotation-layer-info) | `/api/v1/annotation_layer/_info` | +| `DELETE` | [Delete annotation layer (annotation-layer-pk)](./api/delete-annotation-layer-annotation-layer-pk) | `/api/v1/annotation_layer/{pk}` | +| `GET` | [Get an annotation layer (annotation-layer-pk)](./api/get-an-annotation-layer-annotation-layer-pk) | `/api/v1/annotation_layer/{pk}` | +| `PUT` | [Update an annotation layer (annotation-layer-pk)](./api/update-an-annotation-layer-annotation-layer-pk) | `/api/v1/annotation_layer/{pk}` | +| `DELETE` | [Bulk delete annotation layers](./api/bulk-delete-annotation-layers) | `/api/v1/annotation_layer/{pk}/annotation/` | +| `GET` | [Get a list of annotation layers (annotation-layer-pk-annotation)](./api/get-a-list-of-annotation-layers-annotation-layer-pk-annotation) | `/api/v1/annotation_layer/{pk}/annotation/` | +| `POST` | [Create an annotation layer (annotation-layer-pk-annotation)](./api/create-an-annotation-layer-annotation-layer-pk-annotation) | `/api/v1/annotation_layer/{pk}/annotation/` | +| `DELETE` | [Delete annotation layer (annotation-layer-pk-annotation-annotation-id)](./api/delete-annotation-layer-annotation-layer-pk-annotation-annotation-id) | `/api/v1/annotation_layer/{pk}/annotation/{annotation_id}` | +| `GET` | [Get an annotation layer (annotation-layer-pk-annotation-annotation-id)](./api/get-an-annotation-layer-annotation-layer-pk-annotation-annotation-id) | `/api/v1/annotation_layer/{pk}/annotation/{annotation_id}` | +| `PUT` | [Update an annotation layer (annotation-layer-pk-annotation-annotation-id)](./api/update-an-annotation-layer-annotation-layer-pk-annotation-annotation-id) | `/api/v1/annotation_layer/{pk}/annotation/{annotation_id}` | +| `GET` | [Get related fields data (annotation-layer-related-column-name)](./api/get-related-fields-data-annotation-layer-related-column-name) | `/api/v1/annotation_layer/related/{column_name}` | + +
+ +
+CSS Templates (8 endpoints) — Manage CSS templates for custom dashboard styling. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `DELETE` | [Bulk delete CSS templates](./api/bulk-delete-css-templates) | `/api/v1/css_template/` | +| `GET` | [Get a list of CSS templates](./api/get-a-list-of-css-templates) | `/api/v1/css_template/` | +| `POST` | [Create a CSS template](./api/create-a-css-template) | `/api/v1/css_template/` | +| `GET` | [Get metadata information about this API resource (css-template--info)](./api/get-metadata-information-about-this-api-resource-css-template-info) | `/api/v1/css_template/_info` | +| `DELETE` | [Delete a CSS template](./api/delete-a-css-template) | `/api/v1/css_template/{pk}` | +| `GET` | [Get a CSS template](./api/get-a-css-template) | `/api/v1/css_template/{pk}` | +| `PUT` | [Update a CSS template](./api/update-a-css-template) | `/api/v1/css_template/{pk}` | +| `GET` | [Get related fields data (css-template-related-column-name)](./api/get-related-fields-data-css-template-related-column-name) | `/api/v1/css_template/related/{column_name}` | + +
+ +#### Sharing & Embedding + +
+Dashboard Permanent Link (2 endpoints) — Create and retrieve permanent links to dashboard states. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `POST` | [Create a new dashboard's permanent link](./api/create-a-new-dashboards-permanent-link) | `/api/v1/dashboard/{pk}/permalink` | +| `GET` | [Get dashboard's permanent link state](./api/get-dashboards-permanent-link-state) | `/api/v1/dashboard/permalink/{key}` | + +
+ +
+Explore Permanent Link (2 endpoints) — Create and retrieve permanent links to chart explore states. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `POST` | [Create a new permanent link (explore-permalink)](./api/create-a-new-permanent-link-explore-permalink) | `/api/v1/explore/permalink` | +| `GET` | [Get chart's permanent link state](./api/get-charts-permanent-link-state) | `/api/v1/explore/permalink/{key}` | + +
+ +
+SQL Lab Permanent Link (2 endpoints) — Create and retrieve permanent links to SQL Lab states. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `POST` | [Create a new permanent link (sqllab-permalink)](./api/create-a-new-permanent-link-sqllab-permalink) | `/api/v1/sqllab/permalink` | +| `GET` | [Get permanent link state for SQLLab editor.](./api/get-permanent-link-state-for-sql-lab-editor) | `/api/v1/sqllab/permalink/{key}` | + +
+ +
+Embedded Dashboard (1 endpoints) — Configure embedded dashboard settings. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get a report schedule log (embedded-dashboard-uuid)](./api/get-a-report-schedule-log-embedded-dashboard-uuid) | `/api/v1/embedded_dashboard/{uuid}` | + +
+ +
+Dashboard Filter State (4 endpoints) — Manage temporary filter state for dashboards. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `POST` | [Create a dashboard's filter state](./api/create-a-dashboards-filter-state) | `/api/v1/dashboard/{pk}/filter_state` | +| `DELETE` | [Delete a dashboard's filter state value](./api/delete-a-dashboards-filter-state-value) | `/api/v1/dashboard/{pk}/filter_state/{key}` | +| `GET` | [Get a dashboard's filter state value](./api/get-a-dashboards-filter-state-value) | `/api/v1/dashboard/{pk}/filter_state/{key}` | +| `PUT` | [Update a dashboard's filter state value](./api/update-a-dashboards-filter-state-value) | `/api/v1/dashboard/{pk}/filter_state/{key}` | + +
+ +
+Explore Form Data (4 endpoints) — Manage temporary form data for chart exploration. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `POST` | [Create a new form_data](./api/create-a-new-form-data) | `/api/v1/explore/form_data` | +| `DELETE` | [Delete a form_data](./api/delete-a-form-data) | `/api/v1/explore/form_data/{key}` | +| `GET` | [Get a form_data](./api/get-a-form-data) | `/api/v1/explore/form_data/{key}` | +| `PUT` | [Update an existing form_data](./api/update-an-existing-form-data) | `/api/v1/explore/form_data/{key}` | + +
+ +#### Scheduling & Alerts + +
+Report Schedules (11 endpoints) — Configure scheduled reports and alerts. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `DELETE` | [Bulk delete report schedules](./api/bulk-delete-report-schedules) | `/api/v1/report/` | +| `GET` | [Get a list of report schedules](./api/get-a-list-of-report-schedules) | `/api/v1/report/` | +| `POST` | [Create a report schedule](./api/create-a-report-schedule) | `/api/v1/report/` | +| `GET` | [Get metadata information about this API resource (report--info)](./api/get-metadata-information-about-this-api-resource-report-info) | `/api/v1/report/_info` | +| `DELETE` | [Delete a report schedule](./api/delete-a-report-schedule) | `/api/v1/report/{pk}` | +| `GET` | [Get a report schedule](./api/get-a-report-schedule) | `/api/v1/report/{pk}` | +| `PUT` | [Update a report schedule](./api/update-a-report-schedule) | `/api/v1/report/{pk}` | +| `GET` | [Get a list of report schedule logs](./api/get-a-list-of-report-schedule-logs) | `/api/v1/report/{pk}/log/` | +| `GET` | [Get a report schedule log (report-pk-log-log-id)](./api/get-a-report-schedule-log-report-pk-log-log-id) | `/api/v1/report/{pk}/log/{log_id}` | +| `GET` | [Get related fields data (report-related-column-name)](./api/get-related-fields-data-report-related-column-name) | `/api/v1/report/related/{column_name}` | +| `GET` | [Get slack channels](./api/get-slack-channels) | `/api/v1/report/slack_channels/` | + +
+ +#### Security & Access Control + +
+Security Roles (10 endpoints) — Manage security roles and their permissions. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get security roles](./api/get-security-roles) | `/api/v1/security/roles/` | +| `POST` | [Create security roles](./api/create-security-roles) | `/api/v1/security/roles/` | +| `GET` | [Get security roles info](./api/get-security-roles-info) | `/api/v1/security/roles/_info` | +| `DELETE` | [Delete security roles by pk](./api/delete-security-roles-by-pk) | `/api/v1/security/roles/{pk}` | +| `GET` | [Get security roles by pk](./api/get-security-roles-by-pk) | `/api/v1/security/roles/{pk}` | +| `PUT` | [Update security roles by pk](./api/update-security-roles-by-pk) | `/api/v1/security/roles/{pk}` | +| `POST` | [Create security roles by role_id permissions](./api/create-security-roles-by-role-id-permissions) | `/api/v1/security/roles/{role_id}/permissions` | +| `GET` | [Get security roles by role_id permissions](./api/get-security-roles-by-role-id-permissions) | `/api/v1/security/roles/{role_id}/permissions/` | +| `PUT` | [Update security roles by role_id users](./api/update-security-roles-by-role-id-users) | `/api/v1/security/roles/{role_id}/users` | +| `GET` | [List roles](./api/list-roles) | `/api/v1/security/roles/search/` | + +
+ +
+Security Users (6 endpoints) — Manage user accounts. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get security users](./api/get-security-users) | `/api/v1/security/users/` | +| `POST` | [Create security users](./api/create-security-users) | `/api/v1/security/users/` | +| `GET` | [Get security users info](./api/get-security-users-info) | `/api/v1/security/users/_info` | +| `DELETE` | [Delete security users by pk](./api/delete-security-users-by-pk) | `/api/v1/security/users/{pk}` | +| `GET` | [Get security users by pk](./api/get-security-users-by-pk) | `/api/v1/security/users/{pk}` | +| `PUT` | [Update security users by pk](./api/update-security-users-by-pk) | `/api/v1/security/users/{pk}` | + +
+ +
+Security Permissions (3 endpoints) — View available permissions. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get security permissions](./api/get-security-permissions) | `/api/v1/security/permissions/` | +| `GET` | [Get security permissions info](./api/get-security-permissions-info) | `/api/v1/security/permissions/_info` | +| `GET` | [Get security permissions by pk](./api/get-security-permissions-by-pk) | `/api/v1/security/permissions/{pk}` | + +
+ +
+Security Resources (View Menus) (6 endpoints) — Manage security resources (view menus). + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get security resources](./api/get-security-resources) | `/api/v1/security/resources/` | +| `POST` | [Create security resources](./api/create-security-resources) | `/api/v1/security/resources/` | +| `GET` | [Get security resources info](./api/get-security-resources-info) | `/api/v1/security/resources/_info` | +| `DELETE` | [Delete security resources by pk](./api/delete-security-resources-by-pk) | `/api/v1/security/resources/{pk}` | +| `GET` | [Get security resources by pk](./api/get-security-resources-by-pk) | `/api/v1/security/resources/{pk}` | +| `PUT` | [Update security resources by pk](./api/update-security-resources-by-pk) | `/api/v1/security/resources/{pk}` | + +
+ +
+Security Permissions on Resources (View Menus) (6 endpoints) — Manage permission-resource mappings. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get security permissions resources](./api/get-security-permissions-resources) | `/api/v1/security/permissions-resources/` | +| `POST` | [Create security permissions resources](./api/create-security-permissions-resources) | `/api/v1/security/permissions-resources/` | +| `GET` | [Get security permissions resources info](./api/get-security-permissions-resources-info) | `/api/v1/security/permissions-resources/_info` | +| `DELETE` | [Delete security permissions resources by pk](./api/delete-security-permissions-resources-by-pk) | `/api/v1/security/permissions-resources/{pk}` | +| `GET` | [Get security permissions resources by pk](./api/get-security-permissions-resources-by-pk) | `/api/v1/security/permissions-resources/{pk}` | +| `PUT` | [Update security permissions resources by pk](./api/update-security-permissions-resources-by-pk) | `/api/v1/security/permissions-resources/{pk}` | + +
+ +
+Row Level Security (8 endpoints) — Manage row-level security rules for data access control. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `DELETE` | [Bulk delete RLS rules](./api/bulk-delete-rls-rules) | `/api/v1/rowlevelsecurity/` | +| `GET` | [Get a list of RLS](./api/get-a-list-of-rls) | `/api/v1/rowlevelsecurity/` | +| `POST` | [Create a new RLS rule](./api/create-a-new-rls-rule) | `/api/v1/rowlevelsecurity/` | +| `GET` | [Get metadata information about this API resource (rowlevelsecurity--info)](./api/get-metadata-information-about-this-api-resource-rowlevelsecurity-info) | `/api/v1/rowlevelsecurity/_info` | +| `DELETE` | [Delete an RLS](./api/delete-an-rls) | `/api/v1/rowlevelsecurity/{pk}` | +| `GET` | [Get an RLS](./api/get-an-rls) | `/api/v1/rowlevelsecurity/{pk}` | +| `PUT` | [Update an RLS rule](./api/update-an-rls-rule) | `/api/v1/rowlevelsecurity/{pk}` | +| `GET` | [Get related fields data (rowlevelsecurity-related-column-name)](./api/get-related-fields-data-rowlevelsecurity-related-column-name) | `/api/v1/rowlevelsecurity/related/{column_name}` | + +
+ +#### Import/Export & Administration + +
+Import/export (2 endpoints) — Import and export Superset assets (dashboards, charts, databases). + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Export all assets](./api/export-all-assets) | `/api/v1/assets/export/` | +| `POST` | [Import multiple assets](./api/import-multiple-assets) | `/api/v1/assets/import/` | + +
+ +
+CacheRestApi (1 endpoints) — Cache management and invalidation operations. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `POST` | [Invalidate cache records and remove the database records](./api/invalidate-cache-records-and-remove-the-database-records) | `/api/v1/cachekey/invalidate` | + +
+ +
+LogRestApi (4 endpoints) — Access audit logs and activity history. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get a list of logs](./api/get-a-list-of-logs) | `/api/v1/log/` | +| `POST` | [Create log](./api/create-log) | `/api/v1/log/` | +| `GET` | [Get a log detail information](./api/get-a-log-detail-information) | `/api/v1/log/{pk}` | +| `GET` | [Get recent activity data for a user](./api/get-recent-activity-data-for-a-user) | `/api/v1/log/recent_activity/` | + +
+ +#### User & System + +
+Current User (2 endpoints) — Get information about the currently authenticated user. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get the user object](./api/get-the-user-object) | `/api/v1/me/` | +| `GET` | [Get the user roles](./api/get-the-user-roles) | `/api/v1/me/roles/` | + +
+ +
+User (1 endpoints) — User profile and preferences. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get the user avatar](./api/get-the-user-avatar) | `/api/v1/user/{user_id}/avatar.png` | + +
+ +
+Menu (1 endpoints) — Get the Superset menu structure. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get menu](./api/get-menu) | `/api/v1/menu/` | + +
+ +
+Available Domains (1 endpoints) — Get available domains for the Superset instance. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get all available domains](./api/get-all-available-domains) | `/api/v1/available_domains/` | + +
+ +
+AsyncEventsRestApi (1 endpoints) — Real-time event streaming via Server-Sent Events (SSE). + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Read off of the Redis events stream](./api/read-off-of-the-redis-events-stream) | `/api/v1/async_event/` | + +
+ +
+OpenApi (1 endpoints) — Access the OpenAPI specification. + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | [Get api by version openapi](./api/get-api-by-version-openapi) | `/api/{version}/_openapi` | + +
+ +--- + +### Additional Resources + +- [Superset REST API Blog Post](https://preset.io/blog/2020-10-01-superset-api/) +- [Accessing APIs with Superset](https://preset.io/blog/accessing-apis-with-superset/) diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 9b5e2feb04b..85a2cc9b5d3 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -19,6 +19,7 @@ import type { Config } from '@docusaurus/types'; import type { Options, ThemeConfig } from '@docusaurus/preset-classic'; +import type * as OpenApiPlugin from 'docusaurus-plugin-openapi-docs'; import { themes } from 'prism-react-renderer'; import remarkImportPartial from 'remark-import-partial'; import remarkLocalizeBadges from './plugins/remark-localize-badges.mjs'; @@ -155,6 +156,10 @@ if (!versionsConfig.developer_portal.disabled && !versionsConfig.developer_porta docId: 'contributing/overview', label: 'Contributing', }, + { + label: 'API Reference', + href: '/docs/api', + }, ], }); } @@ -177,6 +182,7 @@ const config: Config = { '@saucelabs/theme-github-codeblock', '@docusaurus/theme-mermaid', '@docusaurus/theme-live-codeblock', + 'docusaurus-theme-openapi-docs', ], plugins: [ require.resolve('./src/webpack.extend.ts'), @@ -189,6 +195,29 @@ const config: Config = { }, ], ...dynamicPlugins, + [ + 'docusaurus-plugin-openapi-docs', + { + id: 'api', + docsPluginId: 'classic', + config: { + superset: { + specPath: 'static/resources/openapi.json', + outputDir: 'docs/api', + sidebarOptions: { + groupPathsBy: 'tag', + categoryLinkSource: 'tag', + sidebarCollapsible: true, + sidebarCollapsed: true, + }, + showSchemas: true, + hideSendButton: true, + showInfoPage: false, + showExtensions: true, + } satisfies OpenApiPlugin.Options, + }, + }, + ], [ '@docusaurus/plugin-client-redirects', { @@ -362,6 +391,7 @@ const config: Config = { disableVersioning: false, showLastUpdateAuthor: true, showLastUpdateTime: true, + docItemComponent: '@theme/ApiItem', // Required for OpenAPI docs }, blog: { showReadingTime: true, diff --git a/docs/package.json b/docs/package.json index 0bda2e21626..a511a7f8154 100644 --- a/docs/package.json +++ b/docs/package.json @@ -6,9 +6,11 @@ "scripts": { "docusaurus": "docusaurus", "_init": "cat src/intro_header.txt ../README.md > docs/intro.md", - "start": "yarn run _init && yarn run generate:extension-components && yarn run generate:database-docs && NODE_ENV=development docusaurus start", + "start": "yarn run _init && yarn run generate:extension-components && yarn run generate:database-docs && yarn run generate:api-docs && NODE_ENV=development docusaurus start", "stop": "pkill -f 'docusaurus start' || pkill -f 'docusaurus serve' || echo 'No docusaurus server running'", - "build": "yarn run _init && yarn run generate:extension-components && yarn run generate:database-docs && DEBUG=docusaurus:* docusaurus build", + "build": "yarn run _init && yarn run generate:extension-components && yarn run generate:database-docs && yarn run generate:api-docs && DEBUG=docusaurus:* docusaurus build", + "generate:api-docs": "python3 scripts/fix-openapi-spec.py && docusaurus gen-api-docs superset && node scripts/convert-api-sidebar.mjs && node scripts/generate-api-index.mjs && node scripts/generate-api-tag-pages.mjs", + "clean:api-docs": "docusaurus clean-api-docs superset", "swizzle": "docusaurus swizzle", "deploy": "docusaurus deploy", "clear": "docusaurus clear", @@ -59,6 +61,8 @@ "antd": "^6.2.2", "caniuse-lite": "^1.0.30001766", "docusaurus-plugin-less": "^2.0.2", + "docusaurus-plugin-openapi-docs": "^4.6.0", + "docusaurus-theme-openapi-docs": "^4.6.0", "js-yaml": "^4.1.1", "js-yaml-loader": "^1.2.2", "json-bigint": "^1.0.0", @@ -107,5 +111,9 @@ "last 1 safari version" ] }, + "resolutions": { + "react-redux": "^9.2.0", + "@reduxjs/toolkit": "^2.5.0" + }, "packageManager": "yarn@1.22.22+sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610" } diff --git a/docs/scripts/convert-api-sidebar.mjs b/docs/scripts/convert-api-sidebar.mjs new file mode 100644 index 00000000000..3a7854664a6 --- /dev/null +++ b/docs/scripts/convert-api-sidebar.mjs @@ -0,0 +1,123 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 + * + * http://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. + */ + +/** + * Convert the generated TypeScript API sidebar to CommonJS format. + * This allows the sidebar to be imported by sidebars.js. + * Also adds unique keys to duplicate labels to avoid translation conflicts. + */ + +import fs from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const sidebarTsPath = path.join(__dirname, '..', 'docs', 'api', 'sidebar.ts'); +const sidebarJsPath = path.join(__dirname, '..', 'docs', 'api', 'sidebar.js'); + +if (!fs.existsSync(sidebarTsPath)) { + console.log('No sidebar.ts found, skipping conversion'); + process.exit(0); +} + +let content = fs.readFileSync(sidebarTsPath, 'utf8'); + +// Remove TypeScript import +content = content.replace(/import type.*\n/g, ''); + +// Remove type annotation +content = content.replace(/: SidebarsConfig/g, ''); + +// Change export default to module.exports +content = content.replace( + /export default sidebar\.apisidebar;/, + 'module.exports = sidebar.apisidebar;' +); + +// Parse the sidebar to add unique keys for duplicate labels +// This avoids translation key conflicts when the same label appears multiple times +try { + // Extract the sidebar object + const sidebarMatch = content.match(/const sidebar = (\{[\s\S]*\});/); + if (sidebarMatch) { + // Use Function constructor instead of eval for safer evaluation + const sidebarObj = new Function(`return ${sidebarMatch[1]}`)(); + + // First pass: count labels + const countLabels = (items) => { + const counts = {}; + const count = (item) => { + if (item.type === 'doc' && item.label) { + counts[item.label] = (counts[item.label] || 0) + 1; + } + if (item.items) { + item.items.forEach(count); + } + }; + items.forEach(count); + return counts; + }; + + const counts = countLabels(sidebarObj.apisidebar); + + // Second pass: add keys to items with duplicate labels + const addKeys = (items, prefix = 'api') => { + for (const item of items) { + if (item.type === 'doc' && item.label && counts[item.label] > 1) { + item.key = item.id; + } + // Also add keys to categories to avoid conflicts with main sidebar categories + if (item.type === 'category' && item.label) { + item.key = `${prefix}-category-${item.label.toLowerCase().replace(/\s+/g, '-')}`; + } + if (item.items) { + addKeys(item.items, prefix); + } + } + }; + + addKeys(sidebarObj.apisidebar); + + // Regenerate the content with the updated sidebar + content = `const sidebar = ${JSON.stringify(sidebarObj, null, 2)}; + +module.exports = sidebar.apisidebar; +`; + } +} catch (e) { + console.warn('Could not add unique keys to sidebar:', e.message); + // Fall back to simple conversion + content = content.replace( + /export default sidebar\.apisidebar;/, + 'module.exports = sidebar.apisidebar;' + ); +} + +// Add header with eslint-disable to allow @ts-nocheck +const header = `/* eslint-disable @typescript-eslint/ban-ts-comment */ +// @ts-nocheck +/** + * Auto-generated CommonJS sidebar from sidebar.ts + * Do not edit directly - run 'yarn generate:api-docs' to regenerate + */ + +`; + +fs.writeFileSync(sidebarJsPath, header + content); +console.log('Converted sidebar.ts to sidebar.js'); diff --git a/docs/scripts/fix-openapi-spec.py b/docs/scripts/fix-openapi-spec.py new file mode 100644 index 00000000000..f2609b38c33 --- /dev/null +++ b/docs/scripts/fix-openapi-spec.py @@ -0,0 +1,828 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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 +# +# http://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. + +""" +Fix missing schema references in the OpenAPI spec. + +This script patches the openapi.json file to add any missing schemas +that are referenced but not defined. +""" + +import json # noqa: TID251 - standalone docs script +import sys +from pathlib import Path +from typing import Any + + +def add_missing_schemas(spec: dict[str, Any]) -> tuple[dict[str, Any], list[str]]: + """Add missing schema definitions to the OpenAPI spec.""" + schemas = spec.get("components", {}).get("schemas", {}) + fixed = [] + + # DashboardScreenshotPostSchema - based on superset/dashboards/schemas.py + if "DashboardScreenshotPostSchema" not in schemas: + schemas["DashboardScreenshotPostSchema"] = { + "type": "object", + "properties": { + "dataMask": { + "type": "object", + "description": "An object representing the data mask.", + "additionalProperties": True, + }, + "activeTabs": { + "type": "array", + "items": {"type": "string"}, + "description": "A list representing active tabs.", + }, + "anchor": { + "type": "string", + "description": "A string representing the anchor.", + }, + "urlParams": { + "type": "array", + "items": { + "type": "array", + "items": {"type": "string"}, + "minItems": 2, + "maxItems": 2, + }, + "description": "A list of tuples, each containing two strings.", + }, + }, + } + fixed.append("DashboardScreenshotPostSchema") + + # DashboardNativeFiltersConfigUpdateSchema - based on superset/dashboards/schemas.py + if "DashboardNativeFiltersConfigUpdateSchema" not in schemas: + schemas["DashboardNativeFiltersConfigUpdateSchema"] = { + "type": "object", + "properties": { + "deleted": { + "type": "array", + "items": {"type": "string"}, + "description": "List of deleted filter IDs.", + }, + "modified": { + "type": "array", + "items": {"type": "object"}, + "description": "List of modified filter configurations.", + }, + "reordered": { + "type": "array", + "items": {"type": "string"}, + "description": "List of filter IDs in new order.", + }, + }, + } + fixed.append("DashboardNativeFiltersConfigUpdateSchema") + + # DashboardColorsConfigUpdateSchema - based on superset/dashboards/schemas.py + if "DashboardColorsConfigUpdateSchema" not in schemas: + schemas["DashboardColorsConfigUpdateSchema"] = { + "type": "object", + "properties": { + "color_namespace": { + "type": "string", + "nullable": True, + "description": "The color namespace.", + }, + "color_scheme": { + "type": "string", + "nullable": True, + "description": "The color scheme name.", + }, + "map_label_colors": { + "type": "object", + "additionalProperties": {"type": "string"}, + "description": "Mapping of labels to colors.", + }, + "shared_label_colors": { + "type": "object", + "additionalProperties": {"type": "string"}, + "description": "Shared label colors across charts.", + }, + "label_colors": { + "type": "object", + "additionalProperties": {"type": "string"}, + "description": "Label to color mapping.", + }, + "color_scheme_domain": { + "type": "array", + "items": {"type": "string"}, + "description": "Color scheme domain values.", + }, + }, + } + fixed.append("DashboardColorsConfigUpdateSchema") + + # FormatQueryPayloadSchema - based on superset/sqllab/schemas.py + if "FormatQueryPayloadSchema" not in schemas: + schemas["FormatQueryPayloadSchema"] = { + "type": "object", + "required": ["sql"], + "properties": { + "sql": { + "type": "string", + "description": "The SQL query to format.", + }, + "engine": { + "type": "string", + "nullable": True, + "description": "The database engine.", + }, + "database_id": { + "type": "integer", + "nullable": True, + "description": "The database id.", + }, + "template_params": { + "type": "string", + "nullable": True, + "description": "The SQL query template params as JSON string.", + }, + }, + } + fixed.append("FormatQueryPayloadSchema") + + # get_slack_channels_schema - based on superset/reports/schemas.py + if "get_slack_channels_schema" not in schemas: + schemas["get_slack_channels_schema"] = { + "type": "object", + "properties": { + "search_string": { + "type": "string", + "description": "String to search for in channel names.", + }, + "types": { + "type": "array", + "items": { + "type": "string", + "enum": ["public_channel", "private_channel"], + }, + "description": "Types of channels to search.", + }, + "exact_match": { + "type": "boolean", + "description": "Whether to match channel names exactly.", + }, + }, + } + fixed.append("get_slack_channels_schema") + + if "components" not in spec: + spec["components"] = {} + spec["components"]["schemas"] = schemas + + return spec, fixed + + +def path_to_operation_id(path: str, method: str) -> str: + """Convert a path and method to an operationId.""" + # Remove /api/v1/ prefix + clean_path = path.replace("/api/v1/", "").strip("/") + + # Replace path parameters + clean_path = clean_path.replace("{", "by_").replace("}", "") + + # Create operation name + method_prefix = { + "get": "get", + "post": "create", + "put": "update", + "delete": "delete", + "patch": "patch", + }.get(method.lower(), method.lower()) + + return f"{method_prefix}_{clean_path}".replace("/", "_").replace("-", "_") + + +def path_to_summary(path: str, method: str) -> str: + """Generate a human-readable summary from path and method.""" + # Remove /api/v1/ prefix + clean_path = path.replace("/api/v1/", "").strip("/") + + # Handle path parameters + parts = [] + for part in clean_path.split("/"): + if part.startswith("{") and part.endswith("}"): + param = part[1:-1] + parts.append(f"by {param}") + else: + parts.append(part.replace("_", " ").replace("-", " ")) + + resource = " ".join(parts) + + method_verb = { + "get": "Get", + "post": "Create", + "put": "Update", + "delete": "Delete", + "patch": "Update", + }.get(method.lower(), method.capitalize()) + + return f"{method_verb} {resource}" + + +def add_missing_operation_ids(spec: dict[str, Any]) -> int: + """Add operationId and summary to operations that are missing them.""" + fixed_count = 0 + + for path, methods in spec.get("paths", {}).items(): + for method, details in methods.items(): + if method not in ["get", "post", "put", "delete", "patch"]: + continue + + if not isinstance(details, dict): + continue + + summary = details.get("summary") + operation_id = details.get("operationId") + + if not summary and not operation_id: + details["operationId"] = path_to_operation_id(path, method) + details["summary"] = path_to_summary(path, method) + fixed_count += 1 + + return fixed_count + + +TAG_DESCRIPTIONS = { + "Advanced Data Type": "Advanced data type operations and conversions.", + "Annotation Layers": "Manage annotation layers and annotations for charts.", + "AsyncEventsRestApi": "Real-time event streaming via Server-Sent Events (SSE).", + "Available Domains": "Get available domains for the Superset instance.", + "CSS Templates": "Manage CSS templates for custom dashboard styling.", + "CacheRestApi": "Cache management and invalidation operations.", + "Charts": "Create, read, update, and delete charts (slices).", + "Current User": "Get information about the authenticated user.", + "Dashboard Filter State": "Manage temporary filter state for dashboards.", + "Dashboard Permanent Link": "Permanent links to dashboard states.", + "Dashboards": "Create, read, update, and delete dashboards.", + "Database": "Manage database connections and metadata.", + "Datasets": "Manage datasets (tables) used for building charts.", + "Datasources": "Query datasource metadata and column values.", + "Embedded Dashboard": "Configure embedded dashboard settings.", + "Explore": "Chart exploration and data querying endpoints.", + "Explore Form Data": "Manage temporary form data for chart exploration.", + "Explore Permanent Link": "Permanent links to chart explore states.", + "Import/export": "Import and export Superset assets.", + "LogRestApi": "Access audit logs and activity history.", + "Menu": "Get the Superset menu structure.", + "OpenApi": "Access the OpenAPI specification.", + "Queries": "View and manage SQL Lab query history.", + "Report Schedules": "Configure scheduled reports and alerts.", + "Row Level Security": "Manage row-level security rules for data access.", + "SQL Lab": "Execute SQL queries and manage SQL Lab sessions.", + "SQL Lab Permanent Link": "Permanent links to SQL Lab states.", + "Security": "Authentication and token management.", + "Security Permissions": "View available permissions.", + "Security Permissions on Resources (View Menus)": "Permission-resource mappings.", + "Security Resources (View Menus)": "Manage security resources (view menus).", + "Security Roles": "Manage security roles and their permissions.", + "Security Users": "Manage user accounts.", + "Tags": "Organize assets with tags.", + "User": "User profile and preferences.", +} + + +def generate_code_sample( + method: str, path: str, has_body: bool = False +) -> list[dict[str, str]]: + """Generate code samples for an endpoint in multiple languages.""" + # Clean up path for display + example_path = path.replace("{pk}", "1").replace("{id_or_slug}", "1") + + samples = [] + + # cURL sample + curl_cmd = f'curl -X {method.upper()} "http://localhost:8088{example_path}"' + curl_cmd += ' \\\n -H "Authorization: Bearer $ACCESS_TOKEN"' + if has_body: + curl_cmd += ' \\\n -H "Content-Type: application/json"' + curl_cmd += ' \\\n -d \'{"key": "value"}\'' + + samples.append( + { + "lang": "cURL", + "label": "cURL", + "source": curl_cmd, + } + ) + + # Python sample + if method.lower() == "get": + python_code = f"""import requests + +response = requests.get( + "http://localhost:8088{example_path}", + headers={{"Authorization": "Bearer " + access_token}} +) +print(response.json())""" + elif method.lower() == "post": + python_code = f"""import requests + +response = requests.post( + "http://localhost:8088{example_path}", + headers={{"Authorization": "Bearer " + access_token}}, + json={{"key": "value"}} +) +print(response.json())""" + elif method.lower() == "put": + python_code = f"""import requests + +response = requests.put( + "http://localhost:8088{example_path}", + headers={{"Authorization": "Bearer " + access_token}}, + json={{"key": "value"}} +) +print(response.json())""" + elif method.lower() == "delete": + python_code = f"""import requests + +response = requests.delete( + "http://localhost:8088{example_path}", + headers={{"Authorization": "Bearer " + access_token}} +) +print(response.status_code)""" + else: + python_code = f"""import requests + +response = requests.{method.lower()}( + "http://localhost:8088{example_path}", + headers={{"Authorization": "Bearer " + access_token}} +) +print(response.json())""" + + samples.append( + { + "lang": "Python", + "label": "Python", + "source": python_code, + } + ) + + # JavaScript sample + if method.lower() == "get": + js_code = f"""const response = await fetch( + "http://localhost:8088{example_path}", + {{ + headers: {{ + "Authorization": `Bearer ${{accessToken}}` + }} + }} +); +const data = await response.json(); +console.log(data);""" + elif method.lower() in ["post", "put", "patch"]: + js_code = f"""const response = await fetch( + "http://localhost:8088{example_path}", + {{ + method: "{method.upper()}", + headers: {{ + "Authorization": `Bearer ${{accessToken}}`, + "Content-Type": "application/json" + }}, + body: JSON.stringify({{ key: "value" }}) + }} +); +const data = await response.json(); +console.log(data);""" + else: + js_code = f"""const response = await fetch( + "http://localhost:8088{example_path}", + {{ + method: "{method.upper()}", + headers: {{ + "Authorization": `Bearer ${{accessToken}}` + }} + }} +); +console.log(response.status);""" + + samples.append( + { + "lang": "JavaScript", + "label": "JavaScript", + "source": js_code, + } + ) + + return samples + + +def add_code_samples(spec: dict[str, Any]) -> int: + """Add code samples to all endpoints.""" + count = 0 + + for path, methods in spec.get("paths", {}).items(): + for method, details in methods.items(): + if method not in ["get", "post", "put", "delete", "patch"]: + continue + if not isinstance(details, dict): + continue + + # Skip if already has code samples + if "x-codeSamples" in details: + continue + + # Check if endpoint has a request body + has_body = "requestBody" in details + + details["x-codeSamples"] = generate_code_sample(method, path, has_body) + count += 1 + + return count + + +def configure_servers(spec: dict[str, Any]) -> bool: + """Configure server URLs with variables for flexible API testing.""" + new_servers = [ + { + "url": "http://localhost:8088", + "description": "Local development server", + }, + { + "url": "{protocol}://{host}:{port}", + "description": "Custom server", + "variables": { + "protocol": { + "default": "http", + "enum": ["http", "https"], + "description": "HTTP protocol", + }, + "host": { + "default": "localhost", + "description": "Server hostname or IP", + }, + "port": { + "default": "8088", + "description": "Server port", + }, + }, + }, + ] + + # Check if already configured + existing = spec.get("servers", []) + if len(existing) >= 2 and any("variables" in s for s in existing): + return False + + spec["servers"] = new_servers + return True + + +def add_tag_definitions(spec: dict[str, Any]) -> int: + """Add tag definitions with descriptions to the OpenAPI spec.""" + # Collect all unique tags used in operations + used_tags: set[str] = set() + for _path, methods in spec.get("paths", {}).items(): + for method, details in methods.items(): + if method not in ["get", "post", "put", "delete", "patch"]: + continue + if not isinstance(details, dict): + continue + tags = details.get("tags", []) + used_tags.update(tags) + + # Create tag definitions + tag_definitions = [] + for tag in sorted(used_tags): + tag_def = {"name": tag} + if tag in TAG_DESCRIPTIONS: + tag_def["description"] = TAG_DESCRIPTIONS[tag] + else: + # Generate a generic description + tag_def["description"] = f"Endpoints related to {tag}." + tag_definitions.append(tag_def) + + # Only update if we have new tags + existing_tags = {t.get("name") for t in spec.get("tags", [])} + new_tags = [t for t in tag_definitions if t["name"] not in existing_tags] + + if new_tags or not spec.get("tags"): + spec["tags"] = tag_definitions + return len(tag_definitions) + + return 0 + + +def generate_example_from_schema( # noqa: C901 + schema: dict[str, Any], + spec: dict[str, Any], + depth: int = 0, + max_depth: int = 5, +) -> dict[str, Any] | list[Any] | str | int | float | bool | None: + """Generate an example value from an OpenAPI schema definition.""" + if depth > max_depth: + return None + + # Handle $ref + if "$ref" in schema: + ref_path = schema["$ref"] + if ref_path.startswith("#/components/schemas/"): + schema_name = ref_path.split("/")[-1] + ref_schema = ( + spec.get("components", {}).get("schemas", {}).get(schema_name, {}) + ) + return generate_example_from_schema(ref_schema, spec, depth + 1, max_depth) + return None + + # If schema already has an example, use it + if "example" in schema: + return schema["example"] + + schema_type = schema.get("type", "object") + + if schema_type == "object": + properties = schema.get("properties", {}) + if not properties: + # Check for additionalProperties + if schema.get("additionalProperties"): + return {"key": "value"} + return {} + + result = {} + for prop_name, prop_schema in properties.items(): + # Limit object depth and skip large nested objects + if depth < max_depth: + example_val = generate_example_from_schema( + prop_schema, spec, depth + 1, max_depth + ) + if example_val is not None: + result[prop_name] = example_val + return result + + elif schema_type == "array": + items_schema = schema.get("items", {}) + if items_schema: + item_example = generate_example_from_schema( + items_schema, spec, depth + 1, max_depth + ) + if item_example is not None: + return [item_example] + return [] + + elif schema_type == "string": + # Check for enum + if "enum" in schema: + return schema["enum"][0] + # Check for format + fmt = schema.get("format", "") + if fmt == "date-time": + return "2024-01-15T10:30:00Z" + elif fmt == "date": + return "2024-01-15" + elif fmt == "email": + return "user@example.com" + elif fmt == "uri" or fmt == "url": + return "https://example.com" + elif fmt == "uuid": + return "550e8400-e29b-41d4-a716-446655440000" + # Use description hints or prop name + return "string" + + elif schema_type == "integer": + if "minimum" in schema: + return schema["minimum"] + return 1 + + elif schema_type == "number": + if "minimum" in schema: + return schema["minimum"] + return 1.0 + + elif schema_type == "boolean": + return True + + elif schema_type == "null": + return None + + # Handle oneOf, anyOf + if "oneOf" in schema and schema["oneOf"]: + return generate_example_from_schema( + schema["oneOf"][0], spec, depth + 1, max_depth + ) + if "anyOf" in schema and schema["anyOf"]: + return generate_example_from_schema( + schema["anyOf"][0], spec, depth + 1, max_depth + ) + + return None + + +def add_response_examples(spec: dict[str, Any]) -> int: # noqa: C901 + """Add example values to API responses for better documentation.""" + count = 0 + + # First, add examples to standard error responses in components + standard_errors = { + "400": {"message": "Bad request: Invalid parameters provided"}, + "401": {"message": "Unauthorized: Authentication required"}, + "403": { + "message": "Forbidden: You don't have permission to access this resource" + }, + "404": {"message": "Not found: The requested resource does not exist"}, + "422": {"message": "Unprocessable entity: Validation error"}, + "500": {"message": "Internal server error: An unexpected error occurred"}, + } + + responses = spec.get("components", {}).get("responses", {}) + for code, example_value in standard_errors.items(): + if code in responses: + response = responses[code] + content = response.get("content", {}).get("application/json", {}) + if content and "example" not in content: + content["example"] = example_value + count += 1 + + # Now add examples to inline response schemas in operations + for _path, methods in spec.get("paths", {}).items(): + for method, details in methods.items(): + if method not in ["get", "post", "put", "delete", "patch"]: + continue + if not isinstance(details, dict): + continue + + responses_dict = details.get("responses", {}) + for _status_code, response in responses_dict.items(): + # Skip $ref responses (already handled above) + if "$ref" in response: + continue + + content = response.get("content", {}).get("application/json", {}) + if not content: + continue + + # Skip if already has an example + if "example" in content: + continue + + schema = content.get("schema", {}) + if schema: + example = generate_example_from_schema( + schema, spec, depth=0, max_depth=3 + ) + if example is not None and example != {}: + content["example"] = example + count += 1 + + return count + + +def add_request_body_examples(spec: dict[str, Any]) -> int: + """Add example values to API request bodies for better documentation.""" + count = 0 + + for _path, methods in spec.get("paths", {}).items(): + for method, details in methods.items(): + if method not in ["post", "put", "patch"]: + continue + if not isinstance(details, dict): + continue + + request_body = details.get("requestBody", {}) + if not request_body or "$ref" in request_body: + continue + + content = request_body.get("content", {}).get("application/json", {}) + if not content: + continue + + # Skip if already has an example + if "example" in content: + continue + + schema = content.get("schema", {}) + if schema: + example = generate_example_from_schema( + schema, spec, depth=0, max_depth=4 + ) + if example is not None and example != {}: + content["example"] = example + count += 1 + + return count + + +def make_summaries_unique(spec: dict[str, Any]) -> int: # noqa: C901 + """Make duplicate summaries unique by adding context from the path.""" + summary_info: dict[str, list[tuple[str, str]]] = {} + fixed_count = 0 + + # First pass: collect all summaries and their paths (regardless of method) + for path, methods in spec.get("paths", {}).items(): + for method, details in methods.items(): + if method not in ["get", "post", "put", "delete", "patch"]: + continue + if not isinstance(details, dict): + continue + summary = details.get("summary") + if summary: + if summary not in summary_info: + summary_info[summary] = [] + summary_info[summary].append((path, method)) + + # Second pass: make duplicate summaries unique + for path, methods in spec.get("paths", {}).items(): + for method, details in methods.items(): + if method not in ["get", "post", "put", "delete", "patch"]: + continue + if not isinstance(details, dict): + continue + summary = details.get("summary") + if summary and len(summary_info.get(summary, [])) > 1: + # Create a unique suffix from the full path + # e.g., /api/v1/chart/{pk}/cache_screenshot/ -> "chart-cache-screenshot" + clean_path = path.replace("/api/v1/", "").strip("/") + # Remove parameter placeholders and convert to slug + clean_path = clean_path.replace("{", "").replace("}", "") + path_slug = clean_path.replace("/", "-").replace("_", "-") + + # Check if this suffix is already in the summary + if path_slug not in summary.lower(): + new_summary = f"{summary} ({path_slug})" + details["summary"] = new_summary + fixed_count += 1 + + return fixed_count + + +def main() -> None: # noqa: C901 + """Main function to fix the OpenAPI spec.""" + script_dir = Path(__file__).parent + spec_path = script_dir.parent / "static" / "resources" / "openapi.json" + + if not spec_path.exists(): + print(f"Error: OpenAPI spec not found at {spec_path}", file=sys.stderr) + sys.exit(1) + + print(f"Reading OpenAPI spec from {spec_path}") + + with open(spec_path, encoding="utf-8") as f: + spec = json.load(f) + + spec, fixed_schemas = add_missing_schemas(spec) + fixed_ops = add_missing_operation_ids(spec) + fixed_tags = add_tag_definitions(spec) + fixed_servers = configure_servers(spec) + + changes_made = False + + if fixed_servers: + print("Configured server URLs with variables for flexible API testing") + changes_made = True + + if fixed_samples := add_code_samples(spec): + print(f"Added code samples to {fixed_samples} endpoints") + changes_made = True + + if fixed_examples := add_response_examples(spec): + print(f"Added example JSON responses to {fixed_examples} response schemas") + changes_made = True + + if fixed_request_examples := add_request_body_examples(spec): + print(f"Added example JSON to {fixed_request_examples} request bodies") + changes_made = True + + if fixed_schemas: + print(f"Added missing schemas: {', '.join(fixed_schemas)}") + changes_made = True + + if fixed_ops: + print(f"Added operationId/summary to {fixed_ops} operations") + changes_made = True + + if fixed_tags: + print(f"Added {fixed_tags} tag definitions with descriptions") + changes_made = True + + if fixed_summaries := make_summaries_unique(spec): + print(f"Made {fixed_summaries} duplicate summaries unique") + changes_made = True + + if changes_made: + with open(spec_path, "w", encoding="utf-8") as f: + json.dump(spec, f, indent=2) + f.write("\n") # Ensure trailing newline for pre-commit + + print(f"Updated {spec_path}") + else: + print("No fixes needed") + + +if __name__ == "__main__": + main() diff --git a/docs/scripts/generate-api-index.mjs b/docs/scripts/generate-api-index.mjs new file mode 100644 index 00000000000..0a9b095fed0 --- /dev/null +++ b/docs/scripts/generate-api-index.mjs @@ -0,0 +1,277 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 + * + * http://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. + */ + +/** + * Generates a comprehensive API index MDX file from the OpenAPI spec. + * This creates the api.mdx landing page with all endpoints organized by category. + * + * Uses the generated sidebar to get correct endpoint slugs (the plugin's + * slug algorithm differs from a simple slugify, e.g. handling apostrophes + * and camelCase differently). + */ + +import fs from 'fs'; +import path from 'path'; +import { createRequire } from 'module'; +import { fileURLToPath } from 'url'; + +const require = createRequire(import.meta.url); +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +const SPEC_PATH = path.join(__dirname, '..', 'static', 'resources', 'openapi.json'); +const SIDEBAR_PATH = path.join(__dirname, '..', 'docs', 'api', 'sidebar.js'); +const OUTPUT_PATH = path.join(__dirname, '..', 'docs', 'api.mdx'); + +// Category groupings for better organization +const CATEGORY_GROUPS = { + 'Authentication': ['Security'], + 'Core Resources': ['Dashboards', 'Charts', 'Datasets', 'Database'], + 'Data Exploration': ['Explore', 'SQL Lab', 'Queries', 'Datasources', 'Advanced Data Type'], + 'Organization & Customization': ['Tags', 'Annotation Layers', 'CSS Templates'], + 'Sharing & Embedding': [ + 'Dashboard Permanent Link', 'Explore Permanent Link', 'SQL Lab Permanent Link', + 'Embedded Dashboard', 'Dashboard Filter State', 'Explore Form Data' + ], + 'Scheduling & Alerts': ['Report Schedules'], + 'Security & Access Control': [ + 'Security Roles', 'Security Users', 'Security Permissions', + 'Security Resources (View Menus)', 'Security Permissions on Resources (View Menus)', + 'Row Level Security' + ], + 'Import/Export & Administration': ['Import/export', 'CacheRestApi', 'LogRestApi'], + 'User & System': ['Current User', 'User', 'Menu', 'Available Domains', 'AsyncEventsRestApi', 'OpenApi'], +}; + +/** + * Build a map from sidebar label → doc slug by reading the generated sidebar. + * This ensures we use the exact same slugs that docusaurus-openapi-docs generated. + */ +function buildSlugMap() { + const labelToSlug = {}; + + try { + const sidebar = require(SIDEBAR_PATH); + + const extractDocs = (items) => { + for (const item of items) { + if (item.type === 'doc' && item.label && item.id) { + // id is like "api/create-security-login" → slug "create-security-login" + const slug = item.id.replace(/^api\//, ''); + labelToSlug[item.label] = slug; + } + if (item.items) extractDocs(item.items); + } + }; + + extractDocs(sidebar); + console.log(`Loaded ${Object.keys(labelToSlug).length} slug mappings from sidebar`); + } catch { + console.warn('Could not read sidebar, will use computed slugs'); + } + + return labelToSlug; +} + +function slugify(text) { + return text + .toLowerCase() + .replace(/[^a-z0-9]+/g, '-') + .replace(/(^-|-$)/g, ''); +} + +function main() { + console.log(`Reading OpenAPI spec from ${SPEC_PATH}`); + const spec = JSON.parse(fs.readFileSync(SPEC_PATH, 'utf-8')); + + // Build slug map from the generated sidebar + const labelToSlug = buildSlugMap(); + + // Build a map of tag -> endpoints + const tagEndpoints = {}; + const tagDescriptions = {}; + + // Get tag descriptions + for (const tag of spec.tags || []) { + tagDescriptions[tag.name] = tag.description || ''; + } + + // Collect endpoints by tag + for (const [pathUrl, methods] of Object.entries(spec.paths || {})) { + for (const [method, details] of Object.entries(methods)) { + if (!['get', 'post', 'put', 'delete', 'patch'].includes(method)) continue; + + const tags = details.tags || ['Untagged']; + const summary = details.summary || `${method.toUpperCase()} ${pathUrl}`; + + // Use sidebar slug if available, fall back to computed slug + const slug = labelToSlug[summary] || slugify(summary); + + for (const tag of tags) { + if (!tagEndpoints[tag]) { + tagEndpoints[tag] = []; + } + tagEndpoints[tag].push({ + method: method.toUpperCase(), + path: pathUrl, + summary, + slug, + }); + } + } + } + + // Sort endpoints within each tag by path + for (const tag of Object.keys(tagEndpoints)) { + tagEndpoints[tag].sort((a, b) => a.path.localeCompare(b.path)); + } + + // Generate MDX content + let mdx = `--- +title: API Reference +hide_title: true +sidebar_position: 10 +--- + +import { Alert } from 'antd'; + +## REST API Reference + +Superset exposes a comprehensive **REST API** that follows the [OpenAPI specification](https://swagger.io/specification/). +You can use this API to programmatically interact with Superset for automation, integrations, and custom applications. + + + Each endpoint includes ready-to-use code samples in cURL, Python, and JavaScript. + The sidebar includes Schema definitions for detailed data model documentation. + + } + style={{ marginBottom: '24px' }} +/> + +--- + +`; + + // Track which tags we've rendered + const renderedTags = new Set(); + + // Render Authentication first (it's critical for using the API) + mdx += `### Authentication + +Most API endpoints require authentication via JWT tokens. + +#### Quick Start + +\`\`\`bash +# 1. Get a JWT token +curl -X POST http://localhost:8088/api/v1/security/login \\ + -H "Content-Type: application/json" \\ + -d '{"username": "admin", "password": "admin", "provider": "db"}' + +# 2. Use the access_token from the response +curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \\ + http://localhost:8088/api/v1/dashboard/ +\`\`\` + +#### Security Endpoints + +`; + + // Render Security tag endpoints + if (tagEndpoints['Security']) { + mdx += `| Method | Endpoint | Description |\n`; + mdx += `|--------|----------|-------------|\n`; + for (const ep of tagEndpoints['Security']) { + mdx += `| \`${ep.method}\` | [${ep.summary}](./api/${ep.slug}) | \`${ep.path}\` |\n`; + } + mdx += '\n'; + renderedTags.add('Security'); + } + + mdx += `---\n\n### API Endpoints\n\n`; + + // Render each category group + for (const [groupName, groupTags] of Object.entries(CATEGORY_GROUPS)) { + if (groupName === 'Authentication') continue; // Already rendered + + const tagsInGroup = groupTags.filter(tag => tagEndpoints[tag] && !renderedTags.has(tag)); + if (tagsInGroup.length === 0) continue; + + mdx += `#### ${groupName}\n\n`; + + for (const tag of tagsInGroup) { + const description = tagDescriptions[tag] || ''; + const endpoints = tagEndpoints[tag]; + + mdx += `
\n`; + mdx += `${tag} (${endpoints.length} endpoints) — ${description}\n\n`; + mdx += `| Method | Endpoint | Description |\n`; + mdx += `|--------|----------|-------------|\n`; + + for (const ep of endpoints) { + mdx += `| \`${ep.method}\` | [${ep.summary}](./api/${ep.slug}) | \`${ep.path}\` |\n`; + } + + mdx += `\n
\n\n`; + renderedTags.add(tag); + } + } + + // Render any remaining tags not in a group + const remainingTags = Object.keys(tagEndpoints).filter(tag => !renderedTags.has(tag)); + if (remainingTags.length > 0) { + mdx += `#### Other\n\n`; + + for (const tag of remainingTags.sort()) { + const description = tagDescriptions[tag] || ''; + const endpoints = tagEndpoints[tag]; + + mdx += `
\n`; + mdx += `${tag} (${endpoints.length} endpoints) — ${description}\n\n`; + mdx += `| Method | Endpoint | Description |\n`; + mdx += `|--------|----------|-------------|\n`; + + for (const ep of endpoints) { + mdx += `| \`${ep.method}\` | [${ep.summary}](./api/${ep.slug}) | \`${ep.path}\` |\n`; + } + + mdx += `\n
\n\n`; + } + } + + mdx += `--- + +### Additional Resources + +- [Superset REST API Blog Post](https://preset.io/blog/2020-10-01-superset-api/) +- [Accessing APIs with Superset](https://preset.io/blog/accessing-apis-with-superset/) +`; + + // Write output + fs.writeFileSync(OUTPUT_PATH, mdx); + console.log(`Generated API index at ${OUTPUT_PATH}`); + console.log(`Total tags: ${Object.keys(tagEndpoints).length}`); + console.log(`Total endpoints: ${Object.values(tagEndpoints).flat().length}`); +} + +main(); diff --git a/docs/scripts/generate-api-tag-pages.mjs b/docs/scripts/generate-api-tag-pages.mjs new file mode 100644 index 00000000000..2057436b4f1 --- /dev/null +++ b/docs/scripts/generate-api-tag-pages.mjs @@ -0,0 +1,176 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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 + * + * http://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. + */ + +/** + * Replaces auto-generated tag pages (DocCardList cards) with endpoint tables + * showing HTTP method, endpoint name, and URI path for each endpoint in the tag. + * + * Runs after `docusaurus gen-api-docs` and `convert-api-sidebar.mjs`. + * Uses the generated sidebar to get correct endpoint slugs. + */ + +import fs from 'fs'; +import path from 'path'; +import { createRequire } from 'module'; +import { fileURLToPath } from 'url'; + +const require = createRequire(import.meta.url); +const __dirname = path.dirname(fileURLToPath(import.meta.url)); + +const SPEC_PATH = path.join(__dirname, '..', 'static', 'resources', 'openapi.json'); +const API_DOCS_DIR = path.join(__dirname, '..', 'docs', 'api'); +const SIDEBAR_PATH = path.join(API_DOCS_DIR, 'sidebar.js'); + +function slugify(text) { + return text + .toLowerCase() + .replace(/[^a-z0-9]+/g, '-') + .replace(/(^-|-$)/g, ''); +} + +/** + * Build a map from sidebar label → doc slug by reading the generated sidebar. + */ +function buildSlugMap() { + const labelToSlug = {}; + + try { + const sidebar = require(SIDEBAR_PATH); + + const extractDocs = (items) => { + for (const item of items) { + if (item.type === 'doc' && item.label && item.id) { + const slug = item.id.replace(/^api\//, ''); + labelToSlug[item.label] = slug; + } + if (item.items) extractDocs(item.items); + } + }; + + extractDocs(sidebar); + } catch { + console.warn('Could not read sidebar, will use computed slugs'); + } + + return labelToSlug; +} + +function main() { + console.log('Generating API tag pages with endpoint tables...'); + + const spec = JSON.parse(fs.readFileSync(SPEC_PATH, 'utf-8')); + const labelToSlug = buildSlugMap(); + + // Build tag descriptions from the spec + const tagDescriptions = {}; + for (const tag of spec.tags || []) { + tagDescriptions[tag.name] = tag.description || ''; + } + + // Build tag → endpoints map + const tagEndpoints = {}; + for (const [pathUrl, methods] of Object.entries(spec.paths || {})) { + for (const [method, details] of Object.entries(methods)) { + if (!['get', 'post', 'put', 'delete', 'patch'].includes(method)) continue; + + const tags = details.tags || ['Untagged']; + const summary = details.summary || `${method.toUpperCase()} ${pathUrl}`; + const slug = labelToSlug[summary] || slugify(summary); + + for (const tag of tags) { + if (!tagEndpoints[tag]) { + tagEndpoints[tag] = []; + } + tagEndpoints[tag].push({ + method: method.toUpperCase(), + path: pathUrl, + summary, + slug, + }); + } + } + } + + // Sort endpoints within each tag by path then method + for (const tag of Object.keys(tagEndpoints)) { + tagEndpoints[tag].sort((a, b) => + a.path.localeCompare(b.path) || a.method.localeCompare(b.method) + ); + } + + // Scan existing .tag.mdx files and match by frontmatter title + const tagFiles = fs.readdirSync(API_DOCS_DIR) + .filter(f => f.endsWith('.tag.mdx')); + + let updated = 0; + for (const tagFile of tagFiles) { + const tagFilePath = path.join(API_DOCS_DIR, tagFile); + const existing = fs.readFileSync(tagFilePath, 'utf-8'); + + // Extract frontmatter + const frontmatterMatch = existing.match(/^---\n([\s\S]*?)\n---/); + if (!frontmatterMatch) { + console.warn(` No frontmatter in ${tagFile}, skipping`); + continue; + } + + const frontmatter = frontmatterMatch[1]; + + // Extract the title from frontmatter (this matches the spec tag name) + const titleMatch = frontmatter.match(/title:\s*"([^"]+)"/); + if (!titleMatch) { + console.warn(` No title in ${tagFile}, skipping`); + continue; + } + + const tagName = titleMatch[1]; + const endpoints = tagEndpoints[tagName]; + + if (!endpoints || endpoints.length === 0) { + console.warn(` No endpoints found for tag "${tagName}" (${tagFile})`); + continue; + } + + const description = tagDescriptions[tagName] || ''; + + // Build the endpoint table + let table = '| Method | Endpoint | Path |\n'; + table += '|--------|----------|------|\n'; + for (const ep of endpoints) { + table += `| \`${ep.method}\` | [${ep.summary}](./${ep.slug}) | \`${ep.path}\` |\n`; + } + + // Generate the new MDX content + const mdx = `--- +${frontmatter} +--- + +${description} + +${table} +`; + + fs.writeFileSync(tagFilePath, mdx); + updated++; + } + + console.log(`Updated ${updated} tag pages with endpoint tables`); +} + +main(); diff --git a/docs/sidebarTutorials.js b/docs/sidebarTutorials.js index 97bd3bd2041..6e0eff12247 100644 --- a/docs/sidebarTutorials.js +++ b/docs/sidebarTutorials.js @@ -113,6 +113,11 @@ const sidebars = { 'testing/ci-cd', ], }, + { + type: 'link', + label: 'API Reference', + href: '/docs/api', + }, ], }; diff --git a/docs/sidebars.js b/docs/sidebars.js index 8a808ed31b6..ade80e9e652 100644 --- a/docs/sidebars.js +++ b/docs/sidebars.js @@ -107,9 +107,21 @@ const sidebars = { id: 'faq', }, { - type: 'doc', - label: 'API', - id: 'api', + type: 'category', + label: 'API Reference', + link: { + type: 'doc', + id: 'api', + }, + items: (() => { + try { + // eslint-disable-next-line @typescript-eslint/no-require-imports + return require('./docs/api/sidebar.js'); + } catch { + // Generated by `yarn generate:api-docs`; empty until then + return []; + } + })(), }, ], }; diff --git a/docs/src/styles/custom.css b/docs/src/styles/custom.css index 255559b68cb..df73738ffc7 100644 --- a/docs/src/styles/custom.css +++ b/docs/src/styles/custom.css @@ -187,3 +187,80 @@ ul.dropdown__menu svg { [data-theme='dark'] .ant-collapse-header { color: var(--ifm-font-base-color); } + +/* Hide the non-functional "Send API Request" button and Response block in API docs */ +/* The interactive API testing doesn't work due to CORS restrictions */ +.openapi-explorer__request-btn { + display: none !important; +} + +.openapi-explorer__response-container { + display: none !important; +} + +/* API Method Badge Colors - Swagger-style color coding */ +/* These override Infima badge classes used by docusaurus-openapi-docs */ + +/* GET - Blue (badge--primary) */ +.openapi__method-endpoint .badge--primary { + background-color: #61affe !important; + border-color: #61affe !important; +} + +/* POST - Green (badge--success) */ +.openapi__method-endpoint .badge--success { + background-color: #49cc90 !important; + border-color: #49cc90 !important; +} + +/* PUT - Info/Cyan -> Orange (badge--info) */ +.openapi__method-endpoint .badge--info { + background-color: #fca130 !important; + border-color: #fca130 !important; +} + +/* PATCH - Warning/Yellow -> Teal (badge--warning) */ +.openapi__method-endpoint .badge--warning { + background-color: #50e3c2 !important; + border-color: #50e3c2 !important; + color: #1b1b1d !important; +} + +/* DELETE - Red (badge--danger) */ +.openapi__method-endpoint .badge--danger { + background-color: #f93e3e !important; + border-color: #f93e3e !important; +} + +/* Sidebar method badges - colored dots before endpoint names */ +/* The method classes (get, post, etc.) are on the
  • (menu__list-item), + so we target the (menu__link) inside using descendant selector */ +.menu__list-item.api-method > .menu__link::before { + content: ''; + display: inline-block; + width: 8px; + height: 8px; + border-radius: 50%; + margin-right: 8px; + flex-shrink: 0; +} + +.menu__list-item.get.api-method > .menu__link::before { + background-color: #61affe; +} + +.menu__list-item.post.api-method > .menu__link::before { + background-color: #49cc90; +} + +.menu__list-item.put.api-method > .menu__link::before { + background-color: #fca130; +} + +.menu__list-item.patch.api-method > .menu__link::before { + background-color: #50e3c2; +} + +.menu__list-item.delete.api-method > .menu__link::before { + background-color: #f93e3e; +} diff --git a/docs/src/styles/main.less b/docs/src/styles/main.less index 56d6d006cc1..f89557d8f7c 100644 --- a/docs/src/styles/main.less +++ b/docs/src/styles/main.less @@ -57,13 +57,7 @@ html[data-theme='dark'] .docusaurus-highlight-code-line { font-weight: 400; } -/* Hacks to disable Swagger UI's "try it out" interactive mode */ -.try-out, -.auth-wrapper, -.information-container { - display: none !important; -} - +/* Legacy Swagger UI styles (for versioned docs that still use swagger-ui-react) */ .swagger-ui table td, .swagger-ui table th, .swagger-ui table tr { diff --git a/docs/static/resources/openapi.json b/docs/static/resources/openapi.json index 831b120bf05..4fa850bd838 100644 --- a/docs/static/resources/openapi.json +++ b/docs/static/resources/openapi.json @@ -11,6 +11,9 @@ } }, "type": "object" + }, + "example": { + "message": "Bad request: Invalid parameters provided" } } }, @@ -26,6 +29,9 @@ } }, "type": "object" + }, + "example": { + "message": "Unauthorized: Authentication required" } } }, @@ -41,6 +47,9 @@ } }, "type": "object" + }, + "example": { + "message": "Forbidden: You don't have permission to access this resource" } } }, @@ -56,6 +65,9 @@ } }, "type": "object" + }, + "example": { + "message": "Not found: The requested resource does not exist" } } }, @@ -167,6 +179,9 @@ } }, "type": "object" + }, + "example": { + "message": "Unprocessable entity: Validation error" } } }, @@ -182,6 +197,9 @@ } }, "type": "object" + }, + "example": { + "message": "Internal server error: An unexpected error occurred" } } }, @@ -964,8 +982,12 @@ "id": { "description": "Datasource id/uuid", "oneOf": [ - { "type": "integer" }, - { "type": "string" } + { + "type": "integer" + }, + { + "type": "string" + } ] }, "type": { @@ -11834,6 +11856,159 @@ } }, "type": "object" + }, + "DashboardScreenshotPostSchema": { + "type": "object", + "properties": { + "dataMask": { + "type": "object", + "description": "An object representing the data mask.", + "additionalProperties": true + }, + "activeTabs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list representing active tabs." + }, + "anchor": { + "type": "string", + "description": "A string representing the anchor." + }, + "urlParams": { + "type": "array", + "items": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 2, + "maxItems": 2 + }, + "description": "A list of tuples, each containing two strings." + } + } + }, + "DashboardNativeFiltersConfigUpdateSchema": { + "type": "object", + "properties": { + "deleted": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of deleted filter IDs." + }, + "modified": { + "type": "array", + "items": { + "type": "object" + }, + "description": "List of modified filter configurations." + }, + "reordered": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of filter IDs in new order." + } + } + }, + "DashboardColorsConfigUpdateSchema": { + "type": "object", + "properties": { + "color_namespace": { + "type": "string", + "nullable": true, + "description": "The color namespace." + }, + "color_scheme": { + "type": "string", + "nullable": true, + "description": "The color scheme name." + }, + "map_label_colors": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Mapping of labels to colors." + }, + "shared_label_colors": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Shared label colors across charts." + }, + "label_colors": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Label to color mapping." + }, + "color_scheme_domain": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Color scheme domain values." + } + } + }, + "FormatQueryPayloadSchema": { + "type": "object", + "required": [ + "sql" + ], + "properties": { + "sql": { + "type": "string", + "description": "The SQL query to format." + }, + "engine": { + "type": "string", + "nullable": true, + "description": "The database engine." + }, + "database_id": { + "type": "integer", + "nullable": true, + "description": "The database id." + }, + "template_params": { + "type": "string", + "nullable": true, + "description": "The SQL query template params as JSON string." + } + } + }, + "get_slack_channels_schema": { + "type": "object", + "properties": { + "search_string": { + "type": "string", + "description": "String to search for in channel names." + }, + "types": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "public_channel", + "private_channel" + ] + }, + "description": "Types of channels to search." + }, + "exact_match": { + "type": "boolean", + "description": "Whether to match channel names exactly." + } + } } }, "securitySchemes": { @@ -11878,6 +12053,16 @@ "application/json": { "schema": { "$ref": "#/components/schemas/AdvancedDataTypeSchema" + }, + "example": { + "display_value": "string", + "error_message": "string", + "valid_filter_operators": [ + "string" + ], + "values": [ + "string" + ] } } }, @@ -11907,6 +12092,23 @@ "summary": "Return an AdvancedDataTypeResponse", "tags": [ "Advanced Data Type" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/advanced_data_type/convert\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/advanced_data_type/convert\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/advanced_data_type/convert\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -11926,6 +12128,11 @@ } }, "type": "object" + }, + "example": { + "result": [ + "string" + ] } } }, @@ -11952,6 +12159,23 @@ "summary": "Return a list of available advanced data types", "tags": [ "Advanced Data Type" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/advanced_data_type/types\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/advanced_data_type/types\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/advanced_data_type/types\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -11981,6 +12205,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -12007,6 +12234,23 @@ "summary": "Delete multiple annotation layers in a bulk operation", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/annotation_layer/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/annotation_layer/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -12089,6 +12333,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -12112,9 +12378,26 @@ "jwt": [] } ], - "summary": "Get a list of annotation layers", + "summary": "Get a list of annotation layers (annotation-layer)", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/annotation_layer/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/annotation_layer/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -12123,6 +12406,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/AnnotationLayerRestApi.post" + }, + "example": { + "descr": "string", + "name": "string" } } }, @@ -12143,6 +12430,13 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "descr": "string", + "name": "string" + } } } }, @@ -12166,9 +12460,26 @@ "jwt": [] } ], - "summary": "Create an annotation layer", + "summary": "Create an annotation layer (annotation-layer)", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/annotation_layer/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/annotation_layer/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -12230,6 +12541,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -12253,9 +12576,26 @@ "jwt": [] } ], - "summary": "Get metadata information about this API resource", + "summary": "Get metadata information about this API resource (annotation-layer--info)", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/annotation_layer/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/annotation_layer/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -12288,6 +12628,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RelatedResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -12311,9 +12655,26 @@ "jwt": [] } ], - "summary": "Get related fields data", + "summary": "Get related fields data (annotation-layer-related-column-name)", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/annotation_layer/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/annotation_layer/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -12341,6 +12702,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -12361,9 +12725,26 @@ "jwt": [] } ], - "summary": "Delete annotation layer", + "summary": "Delete annotation layer (annotation-layer-pk)", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/annotation_layer/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/annotation_layer/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -12436,6 +12817,24 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "descr": "string", + "id": 1, + "name": "string" + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -12462,9 +12861,26 @@ "jwt": [] } ], - "summary": "Get an annotation layer", + "summary": "Get an annotation layer (annotation-layer-pk)", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/annotation_layer/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/annotation_layer/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -12484,6 +12900,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/AnnotationLayerRestApi.put" + }, + "example": { + "descr": "string", + "name": "string" } } }, @@ -12504,6 +12924,13 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "descr": "string", + "name": "string" + } } } }, @@ -12527,9 +12954,26 @@ "jwt": [] } ], - "summary": "Update an annotation layer", + "summary": "Update an annotation layer (annotation-layer-pk)", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/annotation_layer/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/annotation_layer/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -12568,6 +13012,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -12594,6 +13041,23 @@ "summary": "Bulk delete annotation layers", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -12646,6 +13110,15 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "ids": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -12669,9 +13142,26 @@ "jwt": [] } ], - "summary": "Get a list of annotation layers", + "summary": "Get a list of annotation layers (annotation-layer-pk-annotation)", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -12691,6 +13181,13 @@ "application/json": { "schema": { "$ref": "#/components/schemas/AnnotationRestApi.post" + }, + "example": { + "end_dttm": "2024-01-15T10:30:00Z", + "json_metadata": "string", + "long_descr": "string", + "short_descr": "string", + "start_dttm": "2024-01-15T10:30:00Z" } } }, @@ -12711,6 +13208,16 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "end_dttm": "2024-01-15T10:30:00Z", + "json_metadata": "string", + "long_descr": "string", + "short_descr": "string", + "start_dttm": "2024-01-15T10:30:00Z" + } } } }, @@ -12734,9 +13241,26 @@ "jwt": [] } ], - "summary": "Create an annotation layer", + "summary": "Create an annotation layer (annotation-layer-pk-annotation)", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -12773,6 +13297,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -12793,9 +13320,26 @@ "jwt": [] } ], - "summary": "Delete annotation layer", + "summary": "Delete annotation layer (annotation-layer-pk-annotation-annotation-id)", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -12845,6 +13389,17 @@ } }, "type": "object" + }, + "example": { + "id": "string", + "result": { + "end_dttm": "2024-01-15T10:30:00Z", + "id": 1, + "json_metadata": "string", + "long_descr": "string", + "short_descr": "string", + "start_dttm": "2024-01-15T10:30:00Z" + } } } }, @@ -12871,9 +13426,26 @@ "jwt": [] } ], - "summary": "Get an annotation layer", + "summary": "Get an annotation layer (annotation-layer-pk-annotation-annotation-id)", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -12902,6 +13474,13 @@ "application/json": { "schema": { "$ref": "#/components/schemas/AnnotationRestApi.put" + }, + "example": { + "end_dttm": "2024-01-15T10:30:00Z", + "json_metadata": "string", + "long_descr": "string", + "short_descr": "string", + "start_dttm": "2024-01-15T10:30:00Z" } } }, @@ -12922,6 +13501,16 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "end_dttm": "2024-01-15T10:30:00Z", + "json_metadata": "string", + "long_descr": "string", + "short_descr": "string", + "start_dttm": "2024-01-15T10:30:00Z" + } } } }, @@ -12945,9 +13534,26 @@ "jwt": [] } ], - "summary": "Update an annotation layer", + "summary": "Update an annotation layer (annotation-layer-pk-annotation-annotation-id)", "tags": [ "Annotation Layers" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/annotation_layer/1/annotation/{annotation_id}\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -12984,6 +13590,23 @@ "summary": "Export all assets", "tags": [ "Import/export" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/assets/export/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/assets/export/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/assets/export/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13037,6 +13660,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -13063,6 +13689,23 @@ "summary": "Import multiple assets", "tags": [ "Import/export" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/assets/import/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/assets/import/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/assets/import/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13119,6 +13762,19 @@ } }, "type": "object" + }, + "example": { + "result": [ + { + "channel_id": "string", + "errors": [], + "id": "string", + "job_id": "string", + "result_url": "string", + "status": "string", + "user_id": 1 + } + ] } } }, @@ -13139,6 +13795,23 @@ "summary": "Read off of the Redis events stream", "tags": [ "AsyncEventsRestApi" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/async_event/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/async_event/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/async_event/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13155,6 +13828,11 @@ } }, "type": "object" + }, + "example": { + "result": { + "domains": [] + } } } }, @@ -13175,6 +13853,23 @@ "summary": "Get all available domains", "tags": [ "Available Domains" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/available_domains/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/available_domains/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/available_domains/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13186,6 +13881,14 @@ "application/json": { "schema": { "$ref": "#/components/schemas/CacheInvalidationRequestSchema" + }, + "example": { + "datasource_uids": [ + "string" + ], + "datasources": [ + {} + ] } } }, @@ -13211,6 +13914,23 @@ "summary": "Invalidate cache records and remove the database records", "tags": [ "CacheRestApi" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/cachekey/invalidate\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/cachekey/invalidate\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/cachekey/invalidate\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13240,6 +13960,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -13269,6 +13992,23 @@ "summary": "Bulk delete charts", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/chart/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/chart/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -13351,6 +14091,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -13377,6 +14139,23 @@ "summary": "Get a list of charts", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/chart/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -13385,6 +14164,32 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ChartRestApi.post" + }, + "example": { + "cache_timeout": 1, + "certification_details": "string", + "certified_by": "string", + "dashboards": [ + 1 + ], + "datasource_id": 1, + "datasource_name": "string", + "datasource_type": "table", + "description": "string", + "external_url": "string", + "is_managed_externally": true, + "owners": [ + 1 + ], + "params": "string", + "query_context": "string", + "query_context_generation": true, + "slice_name": "string", + "viz_type": [ + "bar", + "area", + "table" + ] } } }, @@ -13405,6 +14210,31 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "cache_timeout": 1, + "certification_details": "string", + "certified_by": "string", + "dashboards": [], + "datasource_id": 1, + "datasource_name": "string", + "datasource_type": "table", + "description": "string", + "external_url": "string", + "is_managed_externally": true, + "owners": [], + "params": "string", + "query_context": "string", + "query_context_generation": true, + "slice_name": "string", + "viz_type": [ + "bar", + "area", + "table" + ] + } } } }, @@ -13434,6 +14264,23 @@ "summary": "Create a new chart", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/chart/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/chart/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13495,6 +14342,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -13518,9 +14377,26 @@ "jwt": [] } ], - "summary": "Get metadata information about this API resource", + "summary": "Get metadata information about this API resource (chart--info)", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/chart/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13532,6 +14408,20 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ChartDataQueryContextSchema" + }, + "example": { + "custom_cache_timeout": 1, + "datasource": { + "id": {}, + "type": "table" + }, + "force": true, + "form_data": {}, + "queries": [ + {} + ], + "result_format": {}, + "result_type": {} } } }, @@ -13544,6 +14434,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ChartDataResponseSchema" + }, + "example": { + "result": [] } } }, @@ -13554,6 +14447,13 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ChartDataAsyncResponseSchema" + }, + "example": { + "channel_id": "string", + "job_id": "string", + "result_url": "string", + "status": "string", + "user_id": "string" } } }, @@ -13574,9 +14474,26 @@ "jwt": [] } ], - "summary": "Return payload data response for the given query", + "summary": "Return payload data response for the given query (chart-data)", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/chart/data\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/chart/data\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/data\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13599,6 +14516,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ChartDataResponseSchema" + }, + "example": { + "result": [] } } }, @@ -13625,9 +14545,26 @@ "jwt": [] } ], - "summary": "Return payload data response for the given query", + "summary": "Return payload data response for the given query (chart-data-cache-key)", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/chart/data/{cache_key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/data/{cache_key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/data/{cache_key}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13679,6 +14616,23 @@ "summary": "Download multiple charts as YAML files", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/chart/export/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/export/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/export/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13703,6 +14657,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/GetFavStarIdsSchema" + }, + "example": { + "result": [] } } }, @@ -13729,6 +14686,23 @@ "summary": "Check favorited charts for current user", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/chart/favorite_status/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/favorite_status/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/favorite_status/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13782,6 +14756,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -13808,6 +14785,23 @@ "summary": "Import chart(s) with associated datasets and databases", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/chart/import/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/chart/import/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/import/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13841,6 +14835,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RelatedResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -13864,9 +14862,26 @@ "jwt": [] } ], - "summary": "Get related fields data", + "summary": "Get related fields data (chart-related-column-name)", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/chart/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13878,6 +14893,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ChartCacheWarmUpRequestSchema" + }, + "example": { + "chart_id": 1, + "dashboard_id": 1, + "extra_filters": "string" } } }, @@ -13890,6 +14910,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ChartCacheWarmUpResponseSchema" + }, + "example": { + "result": [] } } }, @@ -13913,6 +14936,23 @@ "summary": "Warm up the cache for the chart", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/chart/warm_up_cache\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/chart/warm_up_cache\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/warm_up_cache\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -13939,6 +14979,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -13968,6 +15011,23 @@ "summary": "Delete a chart", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/chart/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/chart/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -14040,6 +15100,34 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "cache_timeout": 1, + "certification_details": "string", + "certified_by": "string", + "changed_on_delta_humanized": {}, + "description": "string", + "id": 1, + "is_managed_externally": true, + "params": "string", + "query_context": "string", + "slice_name": "string", + "thumbnail_url": {}, + "url": {}, + "viz_type": "string" + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -14069,6 +15157,23 @@ "summary": "Get a chart detail information", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/chart/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -14087,6 +15192,34 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ChartRestApi.put" + }, + "example": { + "cache_timeout": 1, + "certification_details": "string", + "certified_by": "string", + "dashboards": [ + 1 + ], + "datasource_id": 1, + "datasource_type": "table", + "description": "string", + "external_url": "string", + "is_managed_externally": true, + "owners": [ + 1 + ], + "params": "string", + "query_context": "string", + "query_context_generation": true, + "slice_name": "string", + "tags": [ + 1 + ], + "viz_type": [ + "bar", + "area", + "table" + ] } } }, @@ -14107,6 +15240,31 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "cache_timeout": 1, + "certification_details": "string", + "certified_by": "string", + "dashboards": [], + "datasource_id": 1, + "datasource_type": "table", + "description": "string", + "external_url": "string", + "is_managed_externally": true, + "owners": [], + "params": "string", + "query_context": "string", + "query_context_generation": true, + "slice_name": "string", + "tags": [], + "viz_type": [ + "bar", + "area", + "table" + ] + } } } }, @@ -14139,6 +15297,23 @@ "summary": "Update a chart", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/chart/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/chart/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -14171,6 +15346,13 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ChartCacheScreenshotResponseSchema" + }, + "example": { + "cache_key": "string", + "chart_url": "string", + "image_url": "string", + "task_status": "string", + "task_updated_at": "string" } } }, @@ -14181,6 +15363,13 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ChartCacheScreenshotResponseSchema" + }, + "example": { + "cache_key": "string", + "chart_url": "string", + "image_url": "string", + "task_status": "string", + "task_updated_at": "string" } } }, @@ -14204,9 +15393,26 @@ "jwt": [] } ], - "summary": "Compute and cache a screenshot", + "summary": "Compute and cache a screenshot (chart-pk-cache-screenshot)", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/chart/1/cache_screenshot/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/1/cache_screenshot/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1/cache_screenshot/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -14254,6 +15460,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ChartDataResponseSchema" + }, + "example": { + "result": [] } } }, @@ -14264,6 +15473,13 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ChartDataAsyncResponseSchema" + }, + "example": { + "channel_id": "string", + "job_id": "string", + "result_url": "string", + "status": "string", + "user_id": "string" } } }, @@ -14287,6 +15503,23 @@ "summary": "Return payload data response for a chart", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/chart/1/data/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/1/data/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1/data/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -14313,6 +15546,9 @@ } }, "type": "object" + }, + "example": { + "result": {} } } }, @@ -14336,6 +15572,23 @@ "summary": "Remove the chart from the user favorite list", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/chart/1/favorites/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/chart/1/favorites/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1/favorites/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "post": { @@ -14360,6 +15613,9 @@ } }, "type": "object" + }, + "example": { + "result": {} } } }, @@ -14383,6 +15639,23 @@ "summary": "Mark the chart as favorite for the current user", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/chart/1/favorites/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/chart/1/favorites/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1/favorites/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -14436,9 +15709,26 @@ "jwt": [] } ], - "summary": "Get a computed screenshot from cache", + "summary": "Get a computed screenshot from cache (chart-pk-screenshot-digest)", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/chart/1/screenshot/{digest}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/1/screenshot/{digest}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1/screenshot/{digest}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -14500,6 +15790,23 @@ "summary": "Get chart thumbnail", "tags": [ "Charts" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/chart/1/thumbnail/{digest}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/chart/1/thumbnail/{digest}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/chart/1/thumbnail/{digest}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -14529,6 +15836,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -14555,6 +15865,23 @@ "summary": "Bulk delete CSS templates", "tags": [ "CSS Templates" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/css_template/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/css_template/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -14637,6 +15964,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -14663,6 +16012,23 @@ "summary": "Get a list of CSS templates", "tags": [ "CSS Templates" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/css_template/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/css_template/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -14671,6 +16037,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/CssTemplateRestApi.post" + }, + "example": { + "css": "string", + "template_name": "string" } } }, @@ -14691,6 +16061,13 @@ } }, "type": "object" + }, + "example": { + "id": "string", + "result": { + "css": "string", + "template_name": "string" + } } } }, @@ -14717,6 +16094,23 @@ "summary": "Create a CSS template", "tags": [ "CSS Templates" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/css_template/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/css_template/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -14778,6 +16172,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -14801,9 +16207,26 @@ "jwt": [] } ], - "summary": "Get metadata information about this API resource", + "summary": "Get metadata information about this API resource (css-template--info)", "tags": [ "CSS Templates" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/css_template/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/css_template/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -14836,6 +16259,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RelatedResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -14859,9 +16286,26 @@ "jwt": [] } ], - "summary": "Get related fields data", + "summary": "Get related fields data (css-template-related-column-name)", "tags": [ "CSS Templates" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/css_template/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/css_template/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -14888,6 +16332,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -14911,6 +16358,23 @@ "summary": "Delete a CSS template", "tags": [ "CSS Templates" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/css_template/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/css_template/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -14983,6 +16447,25 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "changed_on_delta_humanized": {}, + "css": "string", + "id": 1, + "template_name": "string" + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -15012,6 +16495,23 @@ "summary": "Get a CSS template", "tags": [ "CSS Templates" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/css_template/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/css_template/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -15030,6 +16530,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/CssTemplateRestApi.put" + }, + "example": { + "css": "string", + "template_name": "string" } } }, @@ -15047,6 +16551,12 @@ } }, "type": "object" + }, + "example": { + "result": { + "css": "string", + "template_name": "string" + } } } }, @@ -15076,6 +16586,23 @@ "summary": "Update a CSS template", "tags": [ "CSS Templates" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/css_template/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/css_template/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/css_template/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -15105,6 +16632,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -15134,6 +16664,23 @@ "summary": "Bulk delete dashboards", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/dashboard/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dashboard/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -15216,6 +16763,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -15242,6 +16811,23 @@ "summary": "Get a list of dashboards", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -15250,6 +16836,24 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DashboardRestApi.post" + }, + "example": { + "certification_details": "string", + "certified_by": "string", + "css": "string", + "dashboard_title": "string", + "external_url": "string", + "is_managed_externally": true, + "json_metadata": "string", + "owners": [ + 1 + ], + "position_json": "string", + "published": true, + "roles": [ + 1 + ], + "slug": "string" } } }, @@ -15270,6 +16874,23 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "certification_details": "string", + "certified_by": "string", + "css": "string", + "dashboard_title": "string", + "external_url": "string", + "is_managed_externally": true, + "json_metadata": "string", + "owners": [], + "position_json": "string", + "published": true, + "roles": [], + "slug": "string" + } } } }, @@ -15296,6 +16917,23 @@ "summary": "Create a new dashboard", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -15357,6 +16995,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -15380,9 +17030,26 @@ "jwt": [] } ], - "summary": "Get metadata information about this API resource", + "summary": "Get metadata information about this API resource (dashboard--info)", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -15436,6 +17103,23 @@ "summary": "Download multiple dashboards as YAML files", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/export/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/export/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/export/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -15460,6 +17144,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/GetFavStarIdsSchema" + }, + "example": { + "result": [] } } }, @@ -15486,6 +17173,23 @@ "summary": "Check favorited dashboards for current user", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/favorite_status/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/favorite_status/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/favorite_status/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -15539,6 +17243,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -15565,6 +17272,23 @@ "summary": "Import dashboard(s) with associated charts/datasets/databases", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/import/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/import/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/import/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -15592,6 +17316,9 @@ } }, "type": "object" + }, + "example": { + "state": {} } } }, @@ -15621,6 +17348,23 @@ "summary": "Get dashboard's permanent link state", "tags": [ "Dashboard Permanent Link" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/permalink/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/permalink/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/permalink/{key}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -15654,6 +17398,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RelatedResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -15677,9 +17425,26 @@ "jwt": [] } ], - "summary": "Get related fields data", + "summary": "Get related fields data (dashboard-related-column-name)", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -15707,6 +17472,30 @@ } }, "type": "object" + }, + "example": { + "result": { + "certification_details": "string", + "certified_by": "string", + "changed_by_name": "string", + "changed_on": "2024-01-15T10:30:00Z", + "changed_on_delta_humanized": "string", + "charts": [], + "created_on_delta_humanized": "string", + "css": "string", + "dashboard_title": "string", + "id": 1, + "is_managed_externally": true, + "json_metadata": "string", + "owners": [], + "position_json": "string", + "published": true, + "roles": [], + "slug": "string", + "tags": [], + "thumbnail_url": "string", + "url": "string" + } } } }, @@ -15733,6 +17522,23 @@ "summary": "Get a dashboard detail information", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -15762,6 +17568,11 @@ } }, "type": "object" + }, + "example": { + "result": [ + {} + ] } } }, @@ -15788,6 +17599,23 @@ "summary": "Get a dashboard's chart definitions.", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/charts\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/charts\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/charts\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -15809,6 +17637,12 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DashboardCopySchema" + }, + "example": { + "css": "string", + "dashboard_title": "string", + "duplicate_slices": true, + "json_metadata": "string" } } }, @@ -15828,6 +17662,10 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "last_modified_time": 1.0 } } }, @@ -15857,6 +17695,23 @@ "summary": "Create a copy of an existing dashboard", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/1/copy/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/1/copy/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/copy/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -15888,6 +17743,11 @@ } }, "type": "object" + }, + "example": { + "result": [ + {} + ] } } }, @@ -15914,6 +17774,23 @@ "summary": "Get dashboard's datasets", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/datasets\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/datasets\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/datasets\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -15941,6 +17818,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -15961,6 +17841,23 @@ "summary": "Delete a dashboard's embedded configuration", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/dashboard/1/embedded\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -15986,6 +17883,14 @@ } }, "type": "object" + }, + "example": { + "result": { + "allowed_domains": [], + "changed_on": "2024-01-15T10:30:00Z", + "dashboard_id": "string", + "uuid": "string" + } } } }, @@ -16006,6 +17911,23 @@ "summary": "Get the dashboard's embedded configuration", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/embedded\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -16025,6 +17947,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/EmbeddedDashboardConfig" + }, + "example": { + "allowed_domains": [ + "string" + ] } } }, @@ -16042,6 +17969,14 @@ } }, "type": "object" + }, + "example": { + "result": { + "allowed_domains": [], + "changed_on": "2024-01-15T10:30:00Z", + "dashboard_id": "string", + "uuid": "string" + } } } }, @@ -16062,6 +17997,23 @@ "summary": "Set a dashboard's embedded configuration", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/1/embedded\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -16082,6 +18034,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/EmbeddedDashboardConfig" + }, + "example": { + "allowed_domains": [ + "string" + ] } } }, @@ -16099,6 +18056,14 @@ } }, "type": "object" + }, + "example": { + "result": { + "allowed_domains": [], + "changed_on": "2024-01-15T10:30:00Z", + "dashboard_id": "string", + "uuid": "string" + } } } }, @@ -16118,6 +18083,25 @@ ], "tags": [ "Dashboards" + ], + "operationId": "update_dashboard_by_id_or_slug_embedded", + "summary": "Update dashboard by id_or_slug embedded", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/dashboard/1/embedded\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/embedded\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -16149,6 +18133,9 @@ } }, "type": "object" + }, + "example": { + "result": {} } } }, @@ -16175,6 +18162,23 @@ "summary": "Get dashboard's tabs", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/tabs\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/tabs\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/tabs\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -16201,6 +18205,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -16230,6 +18237,23 @@ "summary": "Delete a dashboard", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/dashboard/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dashboard/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "put": { @@ -16248,6 +18272,27 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DashboardRestApi.put" + }, + "example": { + "certification_details": "string", + "certified_by": "string", + "css": "string", + "dashboard_title": "string", + "external_url": "string", + "is_managed_externally": true, + "json_metadata": "string", + "owners": [ + 1 + ], + "position_json": "string", + "published": true, + "roles": [ + 1 + ], + "slug": "string", + "tags": [ + 1 + ] } } }, @@ -16271,6 +18316,25 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "last_modified_time": 1.0, + "result": { + "certification_details": "string", + "certified_by": "string", + "css": "string", + "dashboard_title": "string", + "external_url": "string", + "is_managed_externally": true, + "json_metadata": "string", + "owners": [], + "position_json": "string", + "published": true, + "roles": [], + "slug": "string", + "tags": [] + } } } }, @@ -16303,6 +18367,23 @@ "summary": "Update a dashboard", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/dashboard/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dashboard/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -16323,6 +18404,20 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DashboardScreenshotPostSchema" + }, + "example": { + "dataMask": { + "key": "value" + }, + "activeTabs": [ + "string" + ], + "anchor": "string", + "urlParams": [ + [ + "string" + ] + ] } } } @@ -16333,6 +18428,13 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DashboardCacheScreenshotResponseSchema" + }, + "example": { + "cache_key": "string", + "dashboard_url": "string", + "image_url": "string", + "task_status": "string", + "task_updated_at": "string" } } }, @@ -16356,9 +18458,26 @@ "jwt": [] } ], - "summary": "Compute and cache a screenshot", + "summary": "Compute and cache a screenshot (dashboard-pk-cache-dashboard-screenshot)", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/1/cache_dashboard_screenshot/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/1/cache_dashboard_screenshot/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/cache_dashboard_screenshot/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -16387,6 +18506,22 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DashboardColorsConfigUpdateSchema" + }, + "example": { + "color_namespace": "string", + "color_scheme": "string", + "map_label_colors": { + "key": "value" + }, + "shared_label_colors": { + "key": "value" + }, + "label_colors": { + "key": "value" + }, + "color_scheme_domain": [ + "string" + ] } } }, @@ -16404,6 +18539,9 @@ } }, "type": "object" + }, + "example": { + "result": [] } } }, @@ -16436,6 +18574,23 @@ "summary": "Update colors configuration for a dashboard.", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/dashboard/1/colors\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dashboard/1/colors\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/colors\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -16462,6 +18617,9 @@ } }, "type": "object" + }, + "example": { + "result": {} } } }, @@ -16485,6 +18643,23 @@ "summary": "Remove the dashboard from the user favorite list", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/dashboard/1/favorites/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dashboard/1/favorites/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/favorites/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "post": { @@ -16509,6 +18684,9 @@ } }, "type": "object" + }, + "example": { + "result": {} } } }, @@ -16532,6 +18710,23 @@ "summary": "Mark the dashboard as favorite for the current user", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/1/favorites/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/1/favorites/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/favorites/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -16660,6 +18855,9 @@ }, "schema": { "$ref": "#/components/schemas/TemporaryCachePostSchema" + }, + "example": { + "value": "string" } } }, @@ -16677,6 +18875,9 @@ } }, "type": "object" + }, + "example": { + "key": "string" } } }, @@ -16703,6 +18904,23 @@ "summary": "Create a dashboard's filter state", "tags": [ "Dashboard Filter State" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/1/filter_state\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -16739,6 +18957,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -16768,6 +18989,23 @@ "summary": "Delete a dashboard's filter state value", "tags": [ "Dashboard Filter State" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -16801,6 +19039,9 @@ } }, "type": "object" + }, + "example": { + "value": "string" } } }, @@ -16830,6 +19071,23 @@ "summary": "Get a dashboard's filter state value", "tags": [ "Dashboard Filter State" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -16863,6 +19121,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/TemporaryCachePutSchema" + }, + "example": { + "value": "string" } } }, @@ -16880,6 +19141,9 @@ } }, "type": "object" + }, + "example": { + "key": "string" } } }, @@ -16909,6 +19173,23 @@ "summary": "Update a dashboard's filter state value", "tags": [ "Dashboard Filter State" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/filter_state/{key}\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -16929,6 +19210,17 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DashboardNativeFiltersConfigUpdateSchema" + }, + "example": { + "deleted": [ + "string" + ], + "modified": [ + {} + ], + "reordered": [ + "string" + ] } } }, @@ -16946,6 +19238,9 @@ } }, "type": "object" + }, + "example": { + "result": [] } } }, @@ -16978,6 +19273,23 @@ "summary": "Update native filters configuration for a dashboard.", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/dashboard/1/filters\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dashboard/1/filters\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/filters\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -17104,6 +19416,16 @@ }, "schema": { "$ref": "#/components/schemas/DashboardPermalinkStateSchema" + }, + "example": { + "activeTabs": [ + "string" + ], + "anchor": "string", + "dataMask": {}, + "urlParams": [ + {} + ] } } }, @@ -17125,6 +19447,10 @@ } }, "type": "object" + }, + "example": { + "key": "string", + "url": "string" } } }, @@ -17151,6 +19477,23 @@ "summary": "Create a new dashboard's permanent link", "tags": [ "Dashboard Permanent Link" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/dashboard/1/permalink\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dashboard/1/permalink\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/permalink\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -17215,9 +19558,26 @@ "jwt": [] } ], - "summary": "Get a computed screenshot from cache", + "summary": "Get a computed screenshot from cache (dashboard-pk-screenshot-digest)", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/screenshot/{digest}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/screenshot/{digest}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/screenshot/{digest}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -17265,6 +19625,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -17294,6 +19657,23 @@ "summary": "Get dashboard's thumbnail", "tags": [ "Dashboards" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dashboard/1/thumbnail/{digest}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dashboard/1/thumbnail/{digest}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dashboard/1/thumbnail/{digest}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -17378,6 +19758,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -17404,6 +19806,23 @@ "summary": "Get a list of databases", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -17412,6 +19831,30 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatabaseRestApi.post" + }, + "example": { + "allow_ctas": true, + "allow_cvas": true, + "allow_dml": true, + "allow_file_upload": true, + "allow_run_async": true, + "cache_timeout": 1, + "configuration_method": {}, + "database_name": "string", + "driver": "string", + "engine": "string", + "expose_in_sqllab": true, + "external_url": "string", + "extra": "string", + "force_ctas_schema": "string", + "impersonate_user": true, + "is_managed_externally": true, + "masked_encrypted_extra": "string", + "parameters": {}, + "server_cert": "string", + "sqlalchemy_uri": "string", + "ssh_tunnel": {}, + "uuid": "string" } } }, @@ -17432,6 +19875,33 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "allow_ctas": true, + "allow_cvas": true, + "allow_dml": true, + "allow_file_upload": true, + "allow_run_async": true, + "cache_timeout": 1, + "configuration_method": {}, + "database_name": "string", + "driver": "string", + "engine": "string", + "expose_in_sqllab": true, + "external_url": "string", + "extra": "string", + "force_ctas_schema": "string", + "impersonate_user": true, + "is_managed_externally": true, + "masked_encrypted_extra": "string", + "parameters": {}, + "server_cert": "string", + "sqlalchemy_uri": "string", + "ssh_tunnel": {}, + "uuid": "string" + } } } }, @@ -17458,6 +19928,23 @@ "summary": "Create a new database", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/database/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -17519,6 +20006,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -17542,9 +20041,26 @@ "jwt": [] } ], - "summary": "Get metadata information about this API resource", + "summary": "Get metadata information about this API resource (database--info)", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -17606,7 +20122,24 @@ "type": "object" }, "type": "array" - } + }, + "example": [ + { + "available_drivers": [ + "string" + ], + "default_driver": "string", + "engine": "string", + "engine_information": { + "disable_ssh_tunneling": true, + "supports_file_upload": true + }, + "name": "string", + "parameters": {}, + "preferred": true, + "sqlalchemy_uri_placeholder": "string" + } + ] } }, "description": "Database names" @@ -17626,6 +20159,23 @@ "summary": "Get names of databases currently available", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/available/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/available/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/available/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -17674,6 +20224,23 @@ "summary": "Download database(s) and associated dataset(s) as a zip file", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/export/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/export/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/export/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -17727,6 +20294,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -17753,6 +20323,23 @@ "summary": "Import database(s) with associated datasets", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/database/import/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/import/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/import/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -17818,6 +20405,23 @@ "summary": "Receive personal access tokens from OAuth2", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/oauth2/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/oauth2/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/oauth2/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -17850,6 +20454,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RelatedResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -17873,9 +20481,26 @@ "jwt": [] } ], - "summary": "Get related fields data", + "summary": "Get related fields data (database-related-column-name)", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -17886,6 +20511,19 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatabaseTestConnectionSchema" + }, + "example": { + "configuration_method": {}, + "database_name": "string", + "driver": "string", + "engine": "string", + "extra": "string", + "impersonate_user": true, + "masked_encrypted_extra": "string", + "parameters": {}, + "server_cert": "string", + "sqlalchemy_uri": "string", + "ssh_tunnel": {} } } }, @@ -17903,6 +20541,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -17926,6 +20567,23 @@ "summary": "Test a database connection", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/database/test_connection/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/test_connection/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/test_connection/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -17952,6 +20610,11 @@ } }, "type": "object" + }, + "example": { + "result": { + "items": [] + } } } }, @@ -17978,6 +20641,23 @@ "summary": "Upload a file and returns file metadata", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/database/upload_metadata/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/upload_metadata/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/upload_metadata/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -17988,6 +20668,23 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatabaseValidateParametersSchema" + }, + "example": { + "catalog": { + "key": "value" + }, + "configuration_method": {}, + "database_name": "string", + "driver": "string", + "engine": "string", + "extra": "string", + "id": 1, + "impersonate_user": true, + "masked_encrypted_extra": "string", + "parameters": { + "key": "value" + }, + "server_cert": "string" } } }, @@ -18005,6 +20702,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -18028,6 +20728,23 @@ "summary": "Validate database connection parameters", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/database/validate_parameters/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/validate_parameters/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/validate_parameters/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -18054,6 +20771,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -18083,6 +20803,23 @@ "summary": "Delete a database", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/database/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/database/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -18129,6 +20866,23 @@ "summary": "Get a database", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -18147,6 +20901,30 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatabaseRestApi.put" + }, + "example": { + "allow_ctas": true, + "allow_cvas": true, + "allow_dml": true, + "allow_file_upload": true, + "allow_run_async": true, + "cache_timeout": 1, + "configuration_method": {}, + "database_name": "string", + "driver": "string", + "engine": "string", + "expose_in_sqllab": true, + "external_url": "string", + "extra": "string", + "force_ctas_schema": "string", + "impersonate_user": true, + "is_managed_externally": true, + "masked_encrypted_extra": "string", + "parameters": {}, + "server_cert": "string", + "sqlalchemy_uri": "string", + "ssh_tunnel": {}, + "uuid": "string" } } }, @@ -18167,6 +20945,33 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "allow_ctas": true, + "allow_cvas": true, + "allow_dml": true, + "allow_file_upload": true, + "allow_run_async": true, + "cache_timeout": 1, + "configuration_method": {}, + "database_name": "string", + "driver": "string", + "engine": "string", + "expose_in_sqllab": true, + "external_url": "string", + "extra": "string", + "force_ctas_schema": "string", + "impersonate_user": true, + "is_managed_externally": true, + "masked_encrypted_extra": "string", + "parameters": {}, + "server_cert": "string", + "sqlalchemy_uri": "string", + "ssh_tunnel": {}, + "uuid": "string" + } } } }, @@ -18199,6 +21004,23 @@ "summary": "Change a database", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/database/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/database/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -18232,6 +21054,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/CatalogsResponseSchema" + }, + "example": { + "result": [ + "string" + ] } } }, @@ -18258,6 +21085,23 @@ "summary": "Get all catalogs from a database", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1/catalogs/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/catalogs/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/catalogs/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -18280,6 +21124,32 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatabaseConnectionSchema" + }, + "example": { + "allow_ctas": true, + "allow_cvas": true, + "allow_dml": true, + "allow_file_upload": true, + "allow_run_async": true, + "backend": "string", + "cache_timeout": 1, + "configuration_method": "string", + "database_name": "string", + "driver": "string", + "engine_information": {}, + "expose_in_sqllab": true, + "extra": "string", + "force_ctas_schema": "string", + "id": 1, + "impersonate_user": true, + "is_managed_externally": true, + "masked_encrypted_extra": "string", + "parameters": {}, + "parameters_schema": {}, + "server_cert": "string", + "sqlalchemy_uri": "string", + "ssh_tunnel": {}, + "uuid": "string" } } }, @@ -18306,6 +21176,23 @@ "summary": "Get a database connection info", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1/connection\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/connection\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/connection\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -18327,6 +21214,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatabaseFunctionNamesResponse" + }, + "example": { + "function_names": [ + "string" + ] } } }, @@ -18350,6 +21242,23 @@ "summary": "Get function names supported by a database", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1/function_names/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/function_names/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/function_names/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -18371,6 +21280,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatabaseRelatedObjectsResponse" + }, + "example": { + "charts": {}, + "dashboards": {} } } }, @@ -18394,6 +21307,23 @@ "summary": "Get charts and dashboards count associated to a database", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1/related_objects/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/related_objects/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/related_objects/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -18427,6 +21357,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/SchemasResponseSchema" + }, + "example": { + "result": [ + "string" + ] } } }, @@ -18453,6 +21388,23 @@ "summary": "Get all schemas from a database", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1/schemas/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/schemas/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/schemas/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -18474,6 +21426,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatabaseSchemaAccessForFileUploadResponse" + }, + "example": { + "schemas": [ + "string" + ] } } }, @@ -18497,6 +21454,23 @@ "summary": "The list of the database schemas where to upload information", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1/schemas_access_for_file_upload/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/schemas_access_for_file_upload/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/schemas_access_for_file_upload/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -18537,6 +21511,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/SelectStarResponseSchema" + }, + "example": { + "result": "string" } } }, @@ -18563,9 +21540,26 @@ "jwt": [] } ], - "summary": "Get database select star for table", + "summary": "Get database select star for table (database-pk-select-star-table-name)", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1/select_star/{table_name}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/select_star/{table_name}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/select_star/{table_name}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -18606,6 +21600,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/SelectStarResponseSchema" + }, + "example": { + "result": "string" } } }, @@ -18632,9 +21629,26 @@ "jwt": [] } ], - "summary": "Get database select star for table", + "summary": "Get database select star for table (database-pk-select-star-table-name-schema-name)", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1/select_star/{table_name}/{schema_name}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/select_star/{table_name}/{schema_name}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/select_star/{table_name}/{schema_name}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -18661,6 +21675,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -18690,6 +21707,23 @@ "summary": "Delete a SSH tunnel", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/database/1/ssh_tunnel/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/database/1/ssh_tunnel/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/ssh_tunnel/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] } }, @@ -18717,6 +21751,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -18743,6 +21780,23 @@ "summary": "Re-sync all permissions for a database connection", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/database/1/sync_permissions/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/1/sync_permissions/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/sync_permissions/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -18783,6 +21837,14 @@ "application/json": { "schema": { "$ref": "#/components/schemas/TableMetadataResponseSchema" + }, + "example": { + "columns": [], + "foreignKeys": [], + "indexes": [], + "name": "string", + "primaryKey": {}, + "selectStar": "string" } } }, @@ -18812,6 +21874,23 @@ "summary": "Get database table metadata", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1/table/{table_name}/{schema_name}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/table/{table_name}/{schema_name}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/table/{table_name}/{schema_name}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -18853,6 +21932,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/TableExtraMetadataResponseSchema" + }, + "example": { + "clustering": {}, + "metadata": {}, + "partitions": {} } } }, @@ -18879,9 +21963,26 @@ "jwt": [] } ], - "summary": "Get table extra metadata", + "summary": "Get table extra metadata (database-pk-table-extra-table-name-schema-name)", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1/table_extra/{table_name}/{schema_name}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/table_extra/{table_name}/{schema_name}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/table_extra/{table_name}/{schema_name}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -18930,6 +22031,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/TableExtraMetadataResponseSchema" + }, + "example": { + "clustering": {}, + "metadata": {}, + "partitions": {} } } }, @@ -18953,6 +22059,23 @@ "summary": "Get table metadata", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1/table_metadata/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/table_metadata/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/table_metadata/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19001,6 +22124,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/TableExtraMetadataResponseSchema" + }, + "example": { + "clustering": {}, + "metadata": {}, + "partitions": {} } } }, @@ -19021,9 +22149,26 @@ "jwt": [] } ], - "summary": "Get table extra metadata", + "summary": "Get table extra metadata (database-pk-table-metadata-extra)", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1/table_metadata/extra/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/table_metadata/extra/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/table_metadata/extra/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19069,6 +22214,12 @@ } }, "type": "object" + }, + "example": { + "count": 1, + "result": [ + {} + ] } } }, @@ -19098,6 +22249,23 @@ "summary": "Get a list of tables for given database", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/database/1/tables/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/database/1/tables/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/tables/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19134,6 +22302,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -19163,6 +22334,23 @@ "summary": "Upload a file to a database table", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/database/1/upload/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/1/upload/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/upload/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19184,6 +22372,12 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ValidateSQLRequest" + }, + "example": { + "catalog": "string", + "schema": "string", + "sql": "string", + "template_params": {} } } }, @@ -19205,6 +22399,11 @@ } }, "type": "object" + }, + "example": { + "result": [ + {} + ] } } }, @@ -19231,6 +22430,23 @@ "summary": "Validate arbitrary SQL", "tags": [ "Database" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/database/1/validate_sql/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/database/1/validate_sql/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/database/1/validate_sql/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19260,6 +22476,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -19292,6 +22511,23 @@ "summary": "Bulk delete datasets", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/dataset/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dataset/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -19374,6 +22610,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -19400,6 +22658,23 @@ "summary": "Get a list of datasets", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dataset/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -19408,6 +22683,20 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatasetRestApi.post" + }, + "example": { + "always_filter_main_dttm": true, + "catalog": "string", + "database": 1, + "external_url": "string", + "is_managed_externally": true, + "normalize_columns": true, + "owners": [ + 1 + ], + "schema": "string", + "sql": "string", + "table_name": "string" } } }, @@ -19428,6 +22717,21 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "always_filter_main_dttm": true, + "catalog": "string", + "database": 1, + "external_url": "string", + "is_managed_externally": true, + "normalize_columns": true, + "owners": [], + "schema": "string", + "sql": "string", + "table_name": "string" + } } } }, @@ -19454,6 +22758,23 @@ "summary": "Create a new dataset", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/dataset/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dataset/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19515,6 +22836,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -19538,9 +22871,26 @@ "jwt": [] } ], - "summary": "Get metadata information about this API resource", + "summary": "Get metadata information about this API resource (dataset--info)", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dataset/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19573,6 +22923,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DistincResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -19596,9 +22950,26 @@ "jwt": [] } ], - "summary": "Get distinct values from field data", + "summary": "Get distinct values from field data (dataset-distinct-column-name)", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dataset/distinct/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/distinct/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/distinct/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19609,6 +22980,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatasetDuplicateSchema" + }, + "example": { + "base_model_id": 1, + "table_name": "string" } } }, @@ -19629,6 +23004,13 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "base_model_id": 1, + "table_name": "string" + } } } }, @@ -19661,6 +23043,23 @@ "summary": "Duplicate a dataset", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/dataset/duplicate\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dataset/duplicate\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/duplicate\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19711,6 +23110,23 @@ "summary": "Download multiple datasets as YAML files", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dataset/export/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/export/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/export/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19721,6 +23137,15 @@ "application/json": { "schema": { "$ref": "#/components/schemas/GetOrCreateDatasetSchema" + }, + "example": { + "always_filter_main_dttm": true, + "catalog": "string", + "database_id": 1, + "normalize_columns": true, + "schema": "string", + "table_name": "string", + "template_params": "string" } } }, @@ -19742,6 +23167,11 @@ } }, "type": "object" + }, + "example": { + "result": { + "table_id": 1 + } } } }, @@ -19768,6 +23198,23 @@ "summary": "Retrieve a table by name, or create it if it does not exist", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/dataset/get_or_create/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dataset/get_or_create/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/get_or_create/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19829,6 +23276,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -19855,6 +23305,23 @@ "summary": "Import dataset(s) with associated databases", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/dataset/import/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/dataset/import/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/import/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19887,6 +23354,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RelatedResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -19910,9 +23381,26 @@ "jwt": [] } ], - "summary": "Get related fields data", + "summary": "Get related fields data (dataset-related-column-name)", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dataset/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19924,6 +23412,12 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatasetCacheWarmUpRequestSchema" + }, + "example": { + "dashboard_id": 1, + "db_name": "string", + "extra_filters": "string", + "table_name": "string" } } }, @@ -19936,6 +23430,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatasetCacheWarmUpResponseSchema" + }, + "example": { + "result": [] } } }, @@ -19959,6 +23456,23 @@ "summary": "Warm up the cache for each chart powered by the given table", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/dataset/warm_up_cache\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dataset/warm_up_cache\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/warm_up_cache\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -19985,6 +23499,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -20014,6 +23531,23 @@ "summary": "Delete a dataset", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/dataset/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dataset/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -20063,6 +23597,46 @@ } }, "type": "object" + }, + "example": { + "id": "string", + "result": { + "always_filter_main_dttm": true, + "cache_timeout": 1, + "catalog": "string", + "changed_on": "2024-01-15T10:30:00Z", + "changed_on_humanized": {}, + "column_formats": {}, + "created_on": "2024-01-15T10:30:00Z", + "created_on_humanized": {}, + "datasource_name": {}, + "datasource_type": {}, + "default_endpoint": "string", + "description": "string", + "extra": "string", + "fetch_values_predicate": "string", + "filter_select_enabled": true, + "folders": {}, + "granularity_sqla": {}, + "id": 1, + "is_managed_externally": true, + "is_sqllab_view": true, + "kind": {}, + "main_dttm_col": "string", + "name": {}, + "normalize_columns": true, + "offset": 1, + "order_by_choices": {}, + "schema": "string", + "select_star": {}, + "sql": "string", + "table_name": "string", + "template_params": "string", + "time_grain_sqla": {}, + "uid": {}, + "url": {}, + "verbose_map": {} + } } } }, @@ -20089,6 +23663,23 @@ "summary": "Get a dataset", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dataset/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -20114,6 +23705,39 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatasetRestApi.put" + }, + "example": { + "always_filter_main_dttm": true, + "cache_timeout": 1, + "catalog": "string", + "columns": [ + {} + ], + "database_id": 1, + "default_endpoint": "string", + "description": "string", + "external_url": "string", + "extra": "string", + "fetch_values_predicate": "string", + "filter_select_enabled": true, + "folders": [ + {} + ], + "is_managed_externally": true, + "is_sqllab_view": true, + "main_dttm_col": "string", + "metrics": [ + {} + ], + "normalize_columns": true, + "offset": 1, + "owners": [ + 1 + ], + "schema": "string", + "sql": "string", + "table_name": "string", + "template_params": "string" } } }, @@ -20134,6 +23758,34 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "always_filter_main_dttm": true, + "cache_timeout": 1, + "catalog": "string", + "columns": [], + "database_id": 1, + "default_endpoint": "string", + "description": "string", + "external_url": "string", + "extra": "string", + "fetch_values_predicate": "string", + "filter_select_enabled": true, + "folders": [], + "is_managed_externally": true, + "is_sqllab_view": true, + "main_dttm_col": "string", + "metrics": [], + "normalize_columns": true, + "offset": 1, + "owners": [], + "schema": "string", + "sql": "string", + "table_name": "string", + "template_params": "string" + } } } }, @@ -20166,6 +23818,23 @@ "summary": "Update a dataset", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/dataset/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dataset/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -20202,6 +23871,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -20231,6 +23903,23 @@ "summary": "Delete a dataset column", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/dataset/1/column/{column_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dataset/1/column/{column_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/column/{column_id}\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] } }, @@ -20267,6 +23956,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -20296,6 +23988,23 @@ "summary": "Delete a dataset metric", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/dataset/1/metric/{metric_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/dataset/1/metric/{metric_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/metric/{metric_id}\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] } }, @@ -20322,6 +24031,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -20351,6 +24063,23 @@ "summary": "Refresh and update columns of a dataset", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/dataset/1/refresh\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/dataset/1/refresh\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/refresh\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -20372,6 +24101,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DatasetRelatedObjectsResponse" + }, + "example": { + "charts": {}, + "dashboards": {} } } }, @@ -20395,6 +24128,23 @@ "summary": "Get charts and dashboards count associated to a dataset", "tags": [ "Datasets" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/dataset/1/related_objects\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/dataset/1/related_objects\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/dataset/1/related_objects\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -20459,6 +24209,11 @@ } }, "type": "object" + }, + "example": { + "result": [ + {} + ] } } }, @@ -20488,6 +24243,23 @@ "summary": "Get possible values for a datasource column", "tags": [ "Datasources" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/datasource/{datasource_type}/{datasource_id}/column/{column_name}/values/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/datasource/{datasource_type}/{datasource_id}/column/{column_name}/values/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/datasource/{datasource_type}/{datasource_id}/column/{column_name}/values/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -20555,6 +24327,14 @@ } }, "type": "object" + }, + "example": { + "result": { + "allowed_domains": [], + "changed_on": "2024-01-15T10:30:00Z", + "dashboard_id": "string", + "uuid": "string" + } } }, "text/html": { @@ -20580,9 +24360,26 @@ "jwt": [] } ], - "summary": "Get a report schedule log", + "summary": "Get a report schedule log (embedded-dashboard-uuid)", "tags": [ "Embedded Dashboard" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/embedded_dashboard/{uuid}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/embedded_dashboard/{uuid}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/embedded_dashboard/{uuid}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -20632,6 +24429,12 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ExploreContextSchema" + }, + "example": { + "dataset": {}, + "form_data": {}, + "message": "string", + "slice": {} } } }, @@ -20661,6 +24464,23 @@ "summary": "Assemble Explore related information in a single endpoint", "tags": [ "Explore" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/explore/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/explore/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -20680,6 +24500,12 @@ "application/json": { "schema": { "$ref": "#/components/schemas/FormDataPostSchema" + }, + "example": { + "chart_id": 1, + "datasource_id": 1, + "datasource_type": "table", + "form_data": "string" } } }, @@ -20697,6 +24523,9 @@ } }, "type": "object" + }, + "example": { + "key": "string" } } }, @@ -20723,6 +24552,23 @@ "summary": "Create a new form_data", "tags": [ "Explore Form Data" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/explore/form_data\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/explore/form_data\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/form_data\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -20751,6 +24597,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -20780,6 +24629,23 @@ "summary": "Delete a form_data", "tags": [ "Explore Form Data" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/explore/form_data/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/explore/form_data/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/form_data/{key}\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -20805,6 +24671,9 @@ } }, "type": "object" + }, + "example": { + "form_data": "string" } } }, @@ -20834,6 +24703,23 @@ "summary": "Get a form_data", "tags": [ "Explore Form Data" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/explore/form_data/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/explore/form_data/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/form_data/{key}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -20859,6 +24745,12 @@ "application/json": { "schema": { "$ref": "#/components/schemas/FormDataPutSchema" + }, + "example": { + "chart_id": 1, + "datasource_id": 1, + "datasource_type": "table", + "form_data": "string" } } }, @@ -20876,6 +24768,9 @@ } }, "type": "object" + }, + "example": { + "key": "string" } } }, @@ -20905,6 +24800,23 @@ "summary": "Update an existing form_data", "tags": [ "Explore Form Data" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/explore/form_data/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/explore/form_data/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/form_data/{key}\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -20915,6 +24827,12 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ExplorePermalinkStateSchema" + }, + "example": { + "formData": {}, + "urlParams": [ + {} + ] } } }, @@ -20936,6 +24854,10 @@ } }, "type": "object" + }, + "example": { + "key": "string", + "url": "string" } } }, @@ -20959,9 +24881,26 @@ "jwt": [] } ], - "summary": "Create a new permanent link", + "summary": "Create a new permanent link (explore-permalink)", "tags": [ "Explore Permanent Link" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/explore/permalink\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/explore/permalink\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/permalink\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -20989,6 +24928,9 @@ } }, "type": "object" + }, + "example": { + "state": {} } } }, @@ -21018,6 +24960,23 @@ "summary": "Get chart's permanent link state", "tags": [ "Explore Permanent Link" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/explore/permalink/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/explore/permalink/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/explore/permalink/{key}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -21102,6 +25061,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -21128,6 +25109,23 @@ "summary": "Get a list of logs", "tags": [ "LogRestApi" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/log/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/log/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/log/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -21136,6 +25134,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/LogRestApi.post" + }, + "example": { + "id": 1 } } }, @@ -21156,6 +25157,12 @@ } }, "type": "object" + }, + "example": { + "id": "string", + "result": { + "id": 1 + } } } }, @@ -21181,6 +25188,25 @@ ], "tags": [ "LogRestApi" + ], + "operationId": "create_log", + "summary": "Create log", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/log/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/log/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/log/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -21214,6 +25240,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RecentActivityResponseSchema" + }, + "example": { + "result": [] } } }, @@ -21240,6 +25269,23 @@ "summary": "Get recent activity data for a user", "tags": [ "LogRestApi" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/log/recent_activity/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/log/recent_activity/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/log/recent_activity/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -21314,6 +25360,29 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "action": "string", + "dashboard_id": 1, + "dttm": "2024-01-15T10:30:00Z", + "duration_ms": 1, + "json": "string", + "referrer": "string", + "slice_id": 1, + "user_id": 1 + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -21343,6 +25412,23 @@ "summary": "Get a log detail information", "tags": [ "LogRestApi" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/log/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/log/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/log/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -21360,6 +25446,17 @@ } }, "type": "object" + }, + "example": { + "result": { + "email": "string", + "first_name": "string", + "id": 1, + "is_active": true, + "is_anonymous": true, + "last_name": "string", + "username": "string" + } } } }, @@ -21372,6 +25469,23 @@ "summary": "Get the user object", "tags": [ "Current User" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/me/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/me/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/me/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -21389,6 +25503,17 @@ } }, "type": "object" + }, + "example": { + "result": { + "email": "string", + "first_name": "string", + "id": 1, + "is_active": true, + "is_anonymous": true, + "last_name": "string", + "username": "string" + } } } }, @@ -21401,6 +25526,23 @@ "summary": "Get the user roles", "tags": [ "Current User" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/me/roles/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/me/roles/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/me/roles/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -21446,6 +25588,17 @@ } }, "type": "object" + }, + "example": { + "result": [ + { + "childs": [], + "icon": "string", + "label": "string", + "name": "string", + "url": "string" + } + ] } } }, @@ -21462,6 +25615,25 @@ ], "tags": [ "Menu" + ], + "operationId": "get_menu", + "summary": "Get menu", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/menu/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/menu/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/menu/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -21546,6 +25718,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -21572,6 +25766,23 @@ "summary": "Get a list of queries", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/query/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/query/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/query/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -21604,6 +25815,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DistincResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -21627,9 +25842,26 @@ "jwt": [] } ], - "summary": "Get distinct values from field data", + "summary": "Get distinct values from field data (query-distinct-column-name)", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/query/distinct/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/query/distinct/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/query/distinct/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -21662,6 +25894,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RelatedResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -21685,9 +25921,26 @@ "jwt": [] } ], - "summary": "Get related fields data", + "summary": "Get related fields data (query-related-column-name)", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/query/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/query/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/query/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -21698,6 +25951,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/StopQuerySchema" + }, + "example": { + "client_id": "string" } } }, @@ -21715,6 +25971,9 @@ } }, "type": "object" + }, + "example": { + "result": "string" } } }, @@ -21741,6 +26000,23 @@ "summary": "Manually stop a query with client_id", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/query/stop\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/query/stop\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/query/stop\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -21774,6 +26050,11 @@ } }, "type": "object" + }, + "example": { + "result": [ + {} + ] } } }, @@ -21800,6 +26081,23 @@ "summary": "Get a list of queries that changed after last_updated_ms", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/query/updated_since\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/query/updated_since\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/query/updated_since\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -21874,6 +26172,45 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "changed_on": "2024-01-15T10:30:00Z", + "client_id": "string", + "end_result_backend_time": 1.0, + "end_time": 1.0, + "error_message": "string", + "executed_sql": "string", + "id": 1, + "limit": 1, + "progress": 1, + "results_key": "string", + "rows": 1, + "schema": "string", + "select_as_cta": true, + "select_as_cta_used": true, + "select_sql": "string", + "sql": "string", + "sql_editor_id": "string", + "start_running_time": 1.0, + "start_time": 1.0, + "status": "string", + "tab_name": "string", + "tmp_schema_name": "string", + "tmp_table_name": "string", + "tracking_url": {} + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -21903,6 +26240,23 @@ "summary": "Get query detail information", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/query/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/query/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/query/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -21932,6 +26286,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -21961,6 +26318,23 @@ "summary": "Bulk delete report schedules", "tags": [ "Report Schedules" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/report/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/report/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -22043,6 +26417,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -22069,6 +26465,23 @@ "summary": "Get a list of report schedules", "tags": [ "Report Schedules" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/report/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -22077,6 +26490,42 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ReportScheduleRestApi.post" + }, + "example": { + "active": true, + "chart": 1, + "context_markdown": "string", + "creation_method": {}, + "crontab": "*/5 * * * *", + "custom_width": 1000, + "dashboard": 1, + "database": 1, + "description": "Daily sales dashboard to marketing", + "email_subject": "[Report] Report name: Dashboard or chart name", + "extra": {}, + "force_screenshot": true, + "grace_period": 14400, + "log_retention": 90, + "name": "Daily dashboard email", + "owners": [ + 1 + ], + "recipients": [ + {} + ], + "report_format": "PDF", + "selected_tabs": [ + 1 + ], + "sql": "SELECT value FROM time_series_table", + "timezone": "Africa/Abidjan", + "type": "Alert", + "validator_config_json": { + "op": "<", + "threshold": 1.0 + }, + "validator_type": "not null", + "working_timeout": 3600 } } }, @@ -22097,6 +26546,35 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "active": true, + "chart": 1, + "context_markdown": "string", + "creation_method": {}, + "crontab": "*/5 * * * *", + "custom_width": 1000, + "dashboard": 1, + "database": 1, + "description": "Daily sales dashboard to marketing", + "email_subject": "[Report] Report name: Dashboard or chart name", + "extra": {}, + "force_screenshot": true, + "grace_period": 14400, + "log_retention": 90, + "name": "Daily dashboard email", + "owners": [], + "recipients": [], + "report_format": "PDF", + "selected_tabs": [], + "sql": "SELECT value FROM time_series_table", + "timezone": "Africa/Abidjan", + "type": "Alert", + "validator_type": "not null", + "working_timeout": 3600 + } } } }, @@ -22126,6 +26604,23 @@ "summary": "Create a report schedule", "tags": [ "Report Schedules" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/report/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/report/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -22187,6 +26682,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -22210,9 +26717,26 @@ "jwt": [] } ], - "summary": "Get metadata information about this API resource", + "summary": "Get metadata information about this API resource (report--info)", "tags": [ "Report Schedules" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/report/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -22245,6 +26769,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RelatedResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -22268,9 +26796,26 @@ "jwt": [] } ], - "summary": "Get related fields data", + "summary": "Get related fields data (report-related-column-name)", "tags": [ "Report Schedules" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/report/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -22312,6 +26857,14 @@ } }, "type": "object" + }, + "example": { + "result": [ + { + "id": "string", + "name": "string" + } + ] } } }, @@ -22341,6 +26894,23 @@ "summary": "Get slack channels", "tags": [ "Report Schedules" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/report/slack_channels/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/slack_channels/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/slack_channels/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -22368,6 +26938,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -22394,6 +26967,23 @@ "summary": "Delete a report schedule", "tags": [ "Report Schedules" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/report/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/report/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -22466,6 +27056,45 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "active": true, + "context_markdown": "string", + "creation_method": "string", + "crontab": "string", + "custom_width": 1, + "description": "string", + "email_subject": "string", + "extra": {}, + "force_screenshot": true, + "grace_period": 1, + "id": 1, + "last_eval_dttm": "2024-01-15T10:30:00Z", + "last_state": "string", + "last_value": 1.0, + "last_value_row_json": "string", + "log_retention": 1, + "name": "string", + "report_format": "string", + "sql": "string", + "timezone": "string", + "type": "string", + "validator_config_json": "string", + "validator_type": "string", + "working_timeout": 1 + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -22495,6 +27124,23 @@ "summary": "Get a report schedule", "tags": [ "Report Schedules" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/report/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -22514,6 +27160,39 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ReportScheduleRestApi.put" + }, + "example": { + "active": true, + "chart": 1, + "context_markdown": "string", + "creation_method": {}, + "crontab": "string", + "custom_width": 1000, + "dashboard": 1, + "database": 1, + "description": "Daily sales dashboard to marketing", + "email_subject": "[Report] Report name: Dashboard or chart name", + "extra": {}, + "force_screenshot": true, + "grace_period": 14400, + "log_retention": 90, + "name": "string", + "owners": [ + 1 + ], + "recipients": [ + {} + ], + "report_format": "PDF", + "sql": "SELECT value FROM time_series_table", + "timezone": "Africa/Abidjan", + "type": "Alert", + "validator_config_json": { + "op": "<", + "threshold": 1.0 + }, + "validator_type": "not null", + "working_timeout": 3600 } } }, @@ -22534,6 +27213,34 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "active": true, + "chart": 1, + "context_markdown": "string", + "creation_method": {}, + "crontab": "string", + "custom_width": 1000, + "dashboard": 1, + "database": 1, + "description": "Daily sales dashboard to marketing", + "email_subject": "[Report] Report name: Dashboard or chart name", + "extra": {}, + "force_screenshot": true, + "grace_period": 14400, + "log_retention": 90, + "name": "string", + "owners": [], + "recipients": [], + "report_format": "PDF", + "sql": "SELECT value FROM time_series_table", + "timezone": "Africa/Abidjan", + "type": "Alert", + "validator_type": "not null", + "working_timeout": 3600 + } } } }, @@ -22566,6 +27273,23 @@ "summary": "Update a report schedule", "tags": [ "Report Schedules" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/report/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/report/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -22620,6 +27344,15 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "ids": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -22646,6 +27379,23 @@ "summary": "Get a list of report schedule logs", "tags": [ "Report Schedules" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/report/1/log/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/1/log/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/1/log/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -22697,6 +27447,20 @@ } }, "type": "object" + }, + "example": { + "id": "string", + "result": { + "end_dttm": "2024-01-15T10:30:00Z", + "error_message": "string", + "id": 1, + "scheduled_dttm": "2024-01-15T10:30:00Z", + "start_dttm": "2024-01-15T10:30:00Z", + "state": "string", + "uuid": "550e8400-e29b-41d4-a716-446655440000", + "value": 1.0, + "value_row_json": "string" + } } } }, @@ -22723,9 +27487,26 @@ "jwt": [] } ], - "summary": "Get a report schedule log", + "summary": "Get a report schedule log (report-pk-log-log-id)", "tags": [ "Report Schedules" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/report/1/log/{log_id}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/report/1/log/{log_id}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/report/1/log/{log_id}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -22755,6 +27536,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -22784,6 +27568,23 @@ "summary": "Bulk delete RLS rules", "tags": [ "Row Level Security" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/rowlevelsecurity/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/rowlevelsecurity/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -22866,6 +27667,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -22892,6 +27715,23 @@ "summary": "Get a list of RLS", "tags": [ "Row Level Security" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/rowlevelsecurity/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/rowlevelsecurity/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -22900,6 +27740,19 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RLSRestApi.post" + }, + "example": { + "clause": "string", + "description": "string", + "filter_type": "Regular", + "group_key": "string", + "name": "string", + "roles": [ + 1 + ], + "tables": [ + 1 + ] } } }, @@ -22920,6 +27773,18 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "clause": "string", + "description": "string", + "filter_type": "Regular", + "group_key": "string", + "name": "string", + "roles": [], + "tables": [] + } } } }, @@ -22949,6 +27814,23 @@ "summary": "Create a new RLS rule", "tags": [ "Row Level Security" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/rowlevelsecurity/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/rowlevelsecurity/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -23010,6 +27892,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -23033,9 +27927,26 @@ "jwt": [] } ], - "summary": "Get metadata information about this API resource", + "summary": "Get metadata information about this API resource (rowlevelsecurity--info)", "tags": [ "Row Level Security" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/rowlevelsecurity/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/rowlevelsecurity/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -23068,6 +27979,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RelatedResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -23091,9 +28006,26 @@ "jwt": [] } ], - "summary": "Get related fields data", + "summary": "Get related fields data (rowlevelsecurity-related-column-name)", "tags": [ "Row Level Security" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/rowlevelsecurity/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/rowlevelsecurity/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -23120,6 +28052,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -23143,6 +28078,23 @@ "summary": "Delete an RLS", "tags": [ "Row Level Security" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/rowlevelsecurity/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/rowlevelsecurity/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -23215,6 +28167,29 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "clause": "string", + "description": "string", + "filter_type": "Regular", + "group_key": "string", + "id": 1, + "name": "string", + "roles": [], + "tables": [] + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -23244,6 +28219,23 @@ "summary": "Get an RLS", "tags": [ "Row Level Security" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/rowlevelsecurity/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/rowlevelsecurity/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -23263,6 +28255,19 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RLSRestApi.put" + }, + "example": { + "clause": "string", + "description": "string", + "filter_type": "Regular", + "group_key": "string", + "name": "string", + "roles": [ + 1 + ], + "tables": [ + 1 + ] } } }, @@ -23283,6 +28288,18 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "clause": "string", + "description": "string", + "filter_type": "Regular", + "group_key": "string", + "name": "string", + "roles": [], + "tables": [] + } } } }, @@ -23315,6 +28332,23 @@ "summary": "Update an RLS rule", "tags": [ "Row Level Security" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/rowlevelsecurity/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/rowlevelsecurity/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/rowlevelsecurity/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -23344,6 +28378,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -23370,6 +28407,23 @@ "summary": "Bulk delete saved queries", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/saved_query/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/saved_query/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -23452,6 +28506,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -23478,6 +28554,23 @@ "summary": "Get a list of saved queries", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/saved_query/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/saved_query/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -23486,6 +28579,16 @@ "application/json": { "schema": { "$ref": "#/components/schemas/SavedQueryRestApi.post" + }, + "example": { + "catalog": "string", + "db_id": 1, + "description": "string", + "extra_json": "string", + "label": "string", + "schema": "string", + "sql": "string", + "template_parameters": "string" } } }, @@ -23506,6 +28609,19 @@ } }, "type": "object" + }, + "example": { + "id": "string", + "result": { + "catalog": "string", + "db_id": 1, + "description": "string", + "extra_json": "string", + "label": "string", + "schema": "string", + "sql": "string", + "template_parameters": "string" + } } } }, @@ -23532,6 +28648,23 @@ "summary": "Create a saved query", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/saved_query/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/saved_query/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -23593,6 +28726,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -23616,9 +28761,26 @@ "jwt": [] } ], - "summary": "Get metadata information about this API resource", + "summary": "Get metadata information about this API resource (saved-query--info)", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/saved_query/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/saved_query/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -23651,6 +28813,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/DistincResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -23674,9 +28840,26 @@ "jwt": [] } ], - "summary": "Get distinct values from field data", + "summary": "Get distinct values from field data (saved-query-distinct-column-name)", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/saved_query/distinct/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/saved_query/distinct/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/distinct/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -23728,6 +28911,23 @@ "summary": "Download multiple saved queries as YAML files", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/saved_query/export/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/saved_query/export/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/export/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -23781,6 +28981,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -23807,6 +29010,23 @@ "summary": "Import saved queries with associated databases", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/saved_query/import/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/saved_query/import/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/import/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -23839,6 +29059,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RelatedResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -23862,9 +29086,26 @@ "jwt": [] } ], - "summary": "Get related fields data", + "summary": "Get related fields data (saved-query-related-column-name)", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/saved_query/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/saved_query/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -23891,6 +29132,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -23914,6 +29158,23 @@ "summary": "Delete a saved query", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/saved_query/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/saved_query/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -23986,6 +29247,31 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "catalog": "string", + "changed_on": "2024-01-15T10:30:00Z", + "changed_on_delta_humanized": {}, + "description": "string", + "id": 1, + "label": "string", + "schema": "string", + "sql": "string", + "sql_tables": {}, + "template_parameters": "string" + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -24015,6 +29301,23 @@ "summary": "Get a saved query", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/saved_query/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/saved_query/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -24033,6 +29336,16 @@ "application/json": { "schema": { "$ref": "#/components/schemas/SavedQueryRestApi.put" + }, + "example": { + "catalog": "string", + "db_id": 1, + "description": "string", + "extra_json": "string", + "label": "string", + "schema": "string", + "sql": "string", + "template_parameters": "string" } } }, @@ -24050,6 +29363,18 @@ } }, "type": "object" + }, + "example": { + "result": { + "catalog": "string", + "db_id": 1, + "description": "string", + "extra_json": "string", + "label": "string", + "schema": "string", + "sql": "string", + "template_parameters": "string" + } } } }, @@ -24079,6 +29404,23 @@ "summary": "Update a saved query", "tags": [ "Queries" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/saved_query/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/saved_query/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/saved_query/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -24095,6 +29437,9 @@ } }, "type": "object" + }, + "example": { + "result": "string" } } }, @@ -24115,6 +29460,23 @@ "summary": "Get the CSRF token", "tags": [ "Security" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/csrf_token/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/csrf_token/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/csrf_token/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -24125,6 +29487,19 @@ "application/json": { "schema": { "$ref": "#/components/schemas/GuestTokenCreate" + }, + "example": { + "resources": [ + {} + ], + "rls": [ + {} + ], + "user": { + "first_name": "string", + "last_name": "string", + "username": "string" + } } } }, @@ -24142,6 +29517,9 @@ } }, "type": "object" + }, + "example": { + "token": "string" } } }, @@ -24165,6 +29543,23 @@ "summary": "Get a guest token", "tags": [ "Security" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/security/guest_token/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/guest_token/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/guest_token/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -24202,6 +29597,12 @@ } }, "type": "object" + }, + "example": { + "password": "complex-password", + "provider": "db", + "refresh": true, + "username": "admin" } } }, @@ -24221,6 +29622,10 @@ } }, "type": "object" + }, + "example": { + "access_token": "string", + "refresh_token": "string" } } }, @@ -24238,6 +29643,25 @@ }, "tags": [ "Security" + ], + "operationId": "create_security_login", + "summary": "Create security login", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/security/login\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/login\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/login\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -24322,6 +29746,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -24347,6 +29793,25 @@ ], "tags": [ "Security Permissions on Resources (View Menus)" + ], + "operationId": "get_security_permissions_resources", + "summary": "Get security permissions resources", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions-resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -24355,6 +29820,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/PermissionViewMenuApi.post" + }, + "example": { + "permission_id": 1, + "view_menu_id": 1 } } }, @@ -24375,6 +29844,13 @@ } }, "type": "object" + }, + "example": { + "id": "string", + "result": { + "permission_id": 1, + "view_menu_id": 1 + } } } }, @@ -24400,6 +29876,25 @@ ], "tags": [ "Security Permissions on Resources (View Menus)" + ], + "operationId": "create_security_permissions_resources", + "summary": "Create security permissions resources", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/security/permissions-resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -24461,6 +29956,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -24486,6 +29993,25 @@ ], "tags": [ "Security Permissions on Resources (View Menus)" + ], + "operationId": "get_security_permissions_resources__info", + "summary": "Get security permissions resources info", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions-resources/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions-resources/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -24512,6 +30038,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -24534,6 +30063,25 @@ ], "tags": [ "Security Permissions on Resources (View Menus)" + ], + "operationId": "delete_security_permissions_resources_by_pk", + "summary": "Delete security permissions resources by pk", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/permissions-resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -24606,6 +30154,22 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "id": 1 + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -24634,6 +30198,25 @@ ], "tags": [ "Security Permissions on Resources (View Menus)" + ], + "operationId": "get_security_permissions_resources_by_pk", + "summary": "Get security permissions resources by pk", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions-resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -24652,6 +30235,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/PermissionViewMenuApi.put" + }, + "example": { + "permission_id": 1, + "view_menu_id": 1 } } }, @@ -24669,6 +30256,12 @@ } }, "type": "object" + }, + "example": { + "result": { + "permission_id": 1, + "view_menu_id": 1 + } } } }, @@ -24697,6 +30290,25 @@ ], "tags": [ "Security Permissions on Resources (View Menus)" + ], + "operationId": "update_security_permissions_resources_by_pk", + "summary": "Update security permissions resources by pk", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/security/permissions-resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions-resources/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -24781,6 +30393,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -24806,6 +30440,25 @@ ], "tags": [ "Security Permissions" + ], + "operationId": "get_security_permissions", + "summary": "Get security permissions", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -24867,6 +30520,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -24892,6 +30557,25 @@ ], "tags": [ "Security Permissions" + ], + "operationId": "get_security_permissions__info", + "summary": "Get security permissions info", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -24966,6 +30650,23 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "id": 1, + "name": "string" + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -24994,6 +30695,25 @@ ], "tags": [ "Security Permissions" + ], + "operationId": "get_security_permissions_by_pk", + "summary": "Get security permissions by pk", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/permissions/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/permissions/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/permissions/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -25012,6 +30732,9 @@ } }, "type": "object" + }, + "example": { + "access_token": "string" } } }, @@ -25031,6 +30754,25 @@ ], "tags": [ "Security" + ], + "operationId": "create_security_refresh", + "summary": "Create security refresh", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/security/refresh\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/refresh\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/refresh\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -25115,6 +30857,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -25140,6 +30904,25 @@ ], "tags": [ "Security Resources (View Menus)" + ], + "operationId": "get_security_resources", + "summary": "Get security resources", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -25148,6 +30931,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ViewMenuApi.post" + }, + "example": { + "name": "string" } } }, @@ -25168,6 +30954,12 @@ } }, "type": "object" + }, + "example": { + "id": "string", + "result": { + "name": "string" + } } } }, @@ -25193,6 +30985,25 @@ ], "tags": [ "Security Resources (View Menus)" + ], + "operationId": "create_security_resources", + "summary": "Create security resources", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/security/resources/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/resources/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -25254,6 +31065,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -25279,6 +31102,25 @@ ], "tags": [ "Security Resources (View Menus)" + ], + "operationId": "get_security_resources__info", + "summary": "Get security resources info", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/resources/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/resources/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -25305,6 +31147,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -25327,6 +31172,25 @@ ], "tags": [ "Security Resources (View Menus)" + ], + "operationId": "delete_security_resources_by_pk", + "summary": "Delete security resources by pk", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -25399,6 +31263,23 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "id": 1, + "name": "string" + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -25427,6 +31308,25 @@ ], "tags": [ "Security Resources (View Menus)" + ], + "operationId": "get_security_resources_by_pk", + "summary": "Get security resources by pk", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -25445,6 +31345,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ViewMenuApi.put" + }, + "example": { + "name": "string" } } }, @@ -25462,6 +31365,11 @@ } }, "type": "object" + }, + "example": { + "result": { + "name": "string" + } } } }, @@ -25490,6 +31398,25 @@ ], "tags": [ "Security Resources (View Menus)" + ], + "operationId": "update_security_resources_by_pk", + "summary": "Update security resources by pk", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/security/resources/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/resources/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/resources/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -25574,6 +31501,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -25599,6 +31548,25 @@ ], "tags": [ "Security Roles" + ], + "operationId": "get_security_roles", + "summary": "Get security roles", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -25607,6 +31575,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/SupersetRoleApi.post" + }, + "example": { + "name": "string" } } }, @@ -25627,6 +31598,12 @@ } }, "type": "object" + }, + "example": { + "id": "string", + "result": { + "name": "string" + } } } }, @@ -25652,6 +31629,25 @@ ], "tags": [ "Security Roles" + ], + "operationId": "create_security_roles", + "summary": "Create security roles", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/security/roles/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/roles/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -25713,6 +31709,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -25738,6 +31746,25 @@ ], "tags": [ "Security Roles" + ], + "operationId": "get_security_roles__info", + "summary": "Get security roles info", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -25804,6 +31831,13 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RolesResponseSchema" + }, + "example": { + "count": 1, + "ids": [ + 1 + ], + "result": [] } } }, @@ -25819,6 +31853,9 @@ } }, "type": "object" + }, + "example": { + "error": "string" } } }, @@ -25834,6 +31871,9 @@ } }, "type": "object" + }, + "example": { + "error": "string" } } }, @@ -25848,6 +31888,23 @@ "summary": "List roles", "tags": [ "Security Roles" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/search/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/search/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/search/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -25874,6 +31931,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -25896,6 +31956,25 @@ ], "tags": [ "Security Roles" + ], + "operationId": "delete_security_roles_by_pk", + "summary": "Delete security roles by pk", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/roles/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/roles/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -25968,6 +32047,23 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "id": 1, + "name": "string" + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -25996,6 +32092,25 @@ ], "tags": [ "Security Roles" + ], + "operationId": "get_security_roles_by_pk", + "summary": "Get security roles by pk", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -26014,6 +32129,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/SupersetRoleApi.put" + }, + "example": { + "name": "string" } } }, @@ -26031,6 +32149,11 @@ } }, "type": "object" + }, + "example": { + "result": { + "name": "string" + } } } }, @@ -26059,6 +32182,25 @@ ], "tags": [ "Security Roles" + ], + "operationId": "update_security_roles_by_pk", + "summary": "Update security roles by pk", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/security/roles/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/roles/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -26079,6 +32221,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RolePermissionPostSchema" + }, + "example": { + "permission_view_menu_ids": [ + 1 + ] } } }, @@ -26096,6 +32243,11 @@ } }, "type": "object" + }, + "example": { + "result": { + "permission_view_menu_ids": [] + } } } }, @@ -26124,6 +32276,25 @@ ], "tags": [ "Security Roles" + ], + "operationId": "create_security_roles_by_role_id_permissions", + "summary": "Create security roles by role_id permissions", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -26150,6 +32321,13 @@ } }, "type": "object" + }, + "example": { + "result": { + "id": 1, + "permission_name": "string", + "view_menu_name": "string" + } } } }, @@ -26178,6 +32356,25 @@ ], "tags": [ "Security Roles" + ], + "operationId": "get_security_roles_by_role_id_permissions", + "summary": "Get security roles by role_id permissions", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/permissions/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -26198,6 +32395,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RoleUserPutSchema" + }, + "example": { + "user_ids": [ + 1 + ] } } }, @@ -26215,6 +32417,11 @@ } }, "type": "object" + }, + "example": { + "result": { + "user_ids": [] + } } } }, @@ -26243,6 +32450,25 @@ ], "tags": [ "Security Roles" + ], + "operationId": "update_security_roles_by_role_id_users", + "summary": "Update security roles by role_id users", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/security/roles/{role_id}/users\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/users\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/roles/{role_id}/users\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -26327,6 +32553,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -26352,6 +32600,25 @@ ], "tags": [ "Security Users" + ], + "operationId": "get_security_users", + "summary": "Get security users", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/users/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/users/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -26360,6 +32627,17 @@ "application/json": { "schema": { "$ref": "#/components/schemas/SupersetUserApi.post" + }, + "example": { + "active": true, + "email": "string", + "first_name": "string", + "last_name": "string", + "password": "string", + "roles": [ + 1 + ], + "username": "string" } } }, @@ -26377,6 +32655,17 @@ } }, "type": "object" + }, + "example": { + "result": { + "active": true, + "email": "string", + "first_name": "string", + "last_name": "string", + "password": "string", + "roles": [], + "username": "string" + } } } }, @@ -26405,6 +32694,25 @@ ], "tags": [ "Security Users" + ], + "operationId": "create_security_users", + "summary": "Create security users", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/security/users/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/security/users/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -26466,6 +32774,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -26491,6 +32811,25 @@ ], "tags": [ "Security Users" + ], + "operationId": "get_security_users__info", + "summary": "Get security users info", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/users/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/users/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -26517,6 +32856,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -26539,6 +32881,25 @@ ], "tags": [ "Security Users" + ], + "operationId": "delete_security_users_by_pk", + "summary": "Delete security users by pk", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/security/users/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/security/users/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -26611,6 +32972,32 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "active": true, + "changed_on": "2024-01-15T10:30:00Z", + "created_on": "2024-01-15T10:30:00Z", + "email": "string", + "fail_login_count": 1, + "first_name": "string", + "id": 1, + "last_login": "2024-01-15T10:30:00Z", + "last_name": "string", + "login_count": 1, + "username": "string" + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -26639,6 +33026,25 @@ ], "tags": [ "Security Users" + ], + "operationId": "get_security_users_by_pk", + "summary": "Get security users by pk", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/security/users/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/security/users/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -26657,6 +33063,17 @@ "application/json": { "schema": { "$ref": "#/components/schemas/SupersetUserApi.put" + }, + "example": { + "active": true, + "email": "string", + "first_name": "string", + "last_name": "string", + "password": "string", + "roles": [ + 1 + ], + "username": "string" } } }, @@ -26674,6 +33091,17 @@ } }, "type": "object" + }, + "example": { + "result": { + "active": true, + "email": "string", + "first_name": "string", + "last_name": "string", + "password": "string", + "roles": [], + "username": "string" + } } } }, @@ -26702,6 +33130,25 @@ ], "tags": [ "Security Users" + ], + "operationId": "update_security_users_by_pk", + "summary": "Update security users by pk", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/security/users/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/security/users/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/security/users/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -26714,6 +33161,18 @@ "application/json": { "schema": { "$ref": "#/components/schemas/SQLLabBootstrapSchema" + }, + "example": { + "active_tab": {}, + "databases": { + "key": "value" + }, + "queries": { + "key": "value" + }, + "tab_state_ids": [ + "string" + ] } } }, @@ -26740,6 +33199,23 @@ "summary": "Get the bootstrap data for SqlLab page", "tags": [ "SQL Lab" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/sqllab/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/sqllab/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -26750,6 +33226,13 @@ "application/json": { "schema": { "$ref": "#/components/schemas/EstimateQueryCostSchema" + }, + "example": { + "catalog": "string", + "database_id": 1, + "schema": "string", + "sql": "string", + "template_params": {} } } }, @@ -26767,6 +33250,9 @@ } }, "type": "object" + }, + "example": { + "result": {} } } }, @@ -26793,6 +33279,23 @@ "summary": "Estimate the SQL query execution cost", "tags": [ "SQL Lab" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/sqllab/estimate/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/sqllab/estimate/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/estimate/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -26803,6 +33306,23 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ExecutePayloadSchema" + }, + "example": { + "catalog": "string", + "client_id": "string", + "ctas_method": "string", + "database_id": 1, + "expand_data": true, + "json": true, + "queryLimit": 1, + "runAsync": true, + "schema": "string", + "select_as_cta": true, + "sql": "string", + "sql_editor_id": "string", + "tab": "string", + "templateParams": "string", + "tmp_table_name": "string" } } }, @@ -26815,6 +33335,23 @@ "application/json": { "schema": { "$ref": "#/components/schemas/QueryExecutionResponseSchema" + }, + "example": { + "columns": [ + {} + ], + "data": [ + {} + ], + "expanded_columns": [ + {} + ], + "query": {}, + "query_id": 1, + "selected_columns": [ + {} + ], + "status": "string" } } }, @@ -26825,6 +33362,23 @@ "application/json": { "schema": { "$ref": "#/components/schemas/QueryExecutionResponseSchema" + }, + "example": { + "columns": [ + {} + ], + "data": [ + {} + ], + "expanded_columns": [ + {} + ], + "query": {}, + "query_id": 1, + "selected_columns": [ + {} + ], + "status": "string" } } }, @@ -26854,6 +33408,23 @@ "summary": "Execute a SQL query", "tags": [ "SQL Lab" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/sqllab/execute/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/sqllab/execute/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/execute/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -26905,6 +33476,23 @@ "summary": "Export the SQL query results to a CSV", "tags": [ "SQL Lab" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/sqllab/export/{client_id}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/sqllab/export/{client_id}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/export/{client_id}/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -26915,6 +33503,12 @@ "application/json": { "schema": { "$ref": "#/components/schemas/FormatQueryPayloadSchema" + }, + "example": { + "sql": "string", + "engine": "string", + "database_id": 1, + "template_params": "string" } } }, @@ -26932,6 +33526,9 @@ } }, "type": "object" + }, + "example": { + "result": "string" } } }, @@ -26958,6 +33555,23 @@ "summary": "Format SQL code", "tags": [ "SQL Lab" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/sqllab/format_sql/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/sqllab/format_sql/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/format_sql/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -26968,6 +33582,12 @@ "application/json": { "schema": { "$ref": "#/components/schemas/ExplorePermalinkStateSchema" + }, + "example": { + "formData": {}, + "urlParams": [ + {} + ] } } }, @@ -26989,6 +33609,10 @@ } }, "type": "object" + }, + "example": { + "key": "string", + "url": "string" } } }, @@ -27012,9 +33636,26 @@ "jwt": [] } ], - "summary": "Create a new permanent link", + "summary": "Create a new permanent link (sqllab-permalink)", "tags": [ "SQL Lab Permanent Link" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/sqllab/permalink\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/sqllab/permalink\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/permalink\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -27042,6 +33683,9 @@ } }, "type": "object" + }, + "example": { + "state": {} } } }, @@ -27071,6 +33715,23 @@ "summary": "Get permanent link state for SQLLab editor.", "tags": [ "SQL Lab Permanent Link" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/sqllab/permalink/{key}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/sqllab/permalink/{key}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/permalink/{key}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -27095,6 +33756,23 @@ "application/json": { "schema": { "$ref": "#/components/schemas/QueryExecutionResponseSchema" + }, + "example": { + "columns": [ + {} + ], + "data": [ + {} + ], + "expanded_columns": [ + {} + ], + "query": {}, + "query_id": 1, + "selected_columns": [ + {} + ], + "status": "string" } } }, @@ -27127,6 +33805,23 @@ "summary": "Get the result of a SQL query execution", "tags": [ "SQL Lab" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/sqllab/results/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/sqllab/results/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/sqllab/results/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -27157,6 +33852,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -27186,6 +33884,23 @@ "summary": "Bulk delete tags", "tags": [ "Tags" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/tag/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/tag/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -27268,6 +33983,28 @@ } }, "type": "object" + }, + "example": { + "count": 1.0, + "description_columns": { + "column_name": "A Nice description for the column" + }, + "ids": [ + "string" + ], + "label_columns": { + "column_name": "A Nice label for the column" + }, + "list_columns": [ + "string" + ], + "list_title": "List Items", + "order_columns": [ + "string" + ], + "result": [ + {} + ] } } }, @@ -27294,6 +34031,23 @@ "summary": "Get a list of tags", "tags": [ "Tags" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/tag/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "post": { @@ -27303,6 +34057,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/TagRestApi.post" + }, + "example": { + "description": "string", + "name": "string", + "objects_to_tag": [] } } }, @@ -27323,6 +34082,14 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "description": "string", + "name": "string", + "objects_to_tag": [] + } } } }, @@ -27349,6 +34116,23 @@ "summary": "Create a tag", "tags": [ "Tags" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/tag/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/tag/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -27410,6 +34194,18 @@ } }, "type": "object" + }, + "example": { + "add_columns": {}, + "edit_columns": {}, + "filters": { + "column_name": [ + {} + ] + }, + "permissions": [ + "string" + ] } } }, @@ -27436,6 +34232,23 @@ "summary": "Get metadata information about tag API endpoints", "tags": [ "Tags" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/tag/_info\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/_info\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/_info\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -27446,6 +34259,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/TagPostBulkSchema" + }, + "example": { + "tags": [ + {} + ] } } }, @@ -27458,6 +34276,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/TagPostBulkResponseSchema" + }, + "example": { + "result": {} } } }, @@ -27487,6 +34308,23 @@ "summary": "Bulk create tags and tagged objects", "tags": [ "Tags" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/tag/bulk_create\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/tag/bulk_create\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/bulk_create\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -27512,6 +34350,9 @@ "application/json": { "schema": { "$ref": "#/components/schemas/GetFavStarIdsSchema" + }, + "example": { + "result": [] } } }, @@ -27537,6 +34378,25 @@ ], "tags": [ "Tags" + ], + "operationId": "get_tag_favorite_status", + "summary": "Get tag favorite status", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/tag/favorite_status/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/favorite_status/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/favorite_status/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -27566,6 +34426,11 @@ } }, "type": "object" + }, + "example": { + "result": [ + {} + ] } } }, @@ -27595,6 +34460,23 @@ "summary": "Get all objects associated with a tag", "tags": [ "Tags" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/tag/get_objects/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/get_objects/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/get_objects/\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -27627,6 +34509,10 @@ "application/json": { "schema": { "$ref": "#/components/schemas/RelatedResponseSchema" + }, + "example": { + "count": 1, + "result": [] } } }, @@ -27650,9 +34536,26 @@ "jwt": [] } ], - "summary": "Get related fields data", + "summary": "Get related fields data (tag-related-column-name)", "tags": [ "Tags" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/tag/related/{column_name}\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/related/{column_name}\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/related/{column_name}\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -27691,6 +34594,11 @@ } }, "type": "object" + }, + "example": { + "tags": [ + "string" + ] } } }, @@ -27725,6 +34633,23 @@ "summary": "Add tags to an object", "tags": [ "Tags" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/tag/{object_type}/{object_id}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/tag/{object_type}/{object_id}/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/{object_type}/{object_id}/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -27767,6 +34692,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -27796,6 +34724,23 @@ "summary": "Delete a tagged object", "tags": [ "Tags" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/tag/{object_type}/{object_id}/{tag}/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/tag/{object_type}/{object_id}/{tag}/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/{object_type}/{object_id}/{tag}/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] } }, @@ -27822,6 +34767,9 @@ } }, "type": "object" + }, + "example": { + "message": "string" } } }, @@ -27845,6 +34793,23 @@ "summary": "Delete a tag", "tags": [ "Tags" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/tag/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/tag/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/1\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "get": { @@ -27917,6 +34882,27 @@ } }, "type": "object" + }, + "example": { + "description_columns": { + "column_name": "A Nice description for the column" + }, + "id": "string", + "label_columns": { + "column_name": "A Nice label for the column" + }, + "result": { + "changed_on_delta_humanized": {}, + "created_on_delta_humanized": {}, + "description": "string", + "id": 1, + "name": "string", + "type": {} + }, + "show_columns": [ + "string" + ], + "show_title": "Show Item Details" } } }, @@ -27946,6 +34932,23 @@ "summary": "Get a tag detail information", "tags": [ "Tags" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/tag/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/tag/1\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/1\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] }, "put": { @@ -27965,6 +34968,11 @@ "application/json": { "schema": { "$ref": "#/components/schemas/TagRestApi.put" + }, + "example": { + "description": "string", + "name": "string", + "objects_to_tag": [] } } }, @@ -27985,6 +34993,14 @@ } }, "type": "object" + }, + "example": { + "id": 1.0, + "result": { + "description": "string", + "name": "string", + "objects_to_tag": [] + } } } }, @@ -28017,6 +35033,23 @@ "summary": "Update a tag", "tags": [ "Tags" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X PUT \"http://localhost:8088/api/v1/tag/1\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"key\": \"value\"}'" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.put(\n \"http://localhost:8088/api/v1/tag/1\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/1\",\n {\n method: \"PUT\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -28044,6 +35077,9 @@ } }, "type": "object" + }, + "example": { + "result": {} } } }, @@ -28069,6 +35105,25 @@ ], "tags": [ "Tags" + ], + "operationId": "delete_tag_by_pk_favorites", + "summary": "Delete tag by pk favorites", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X DELETE \"http://localhost:8088/api/v1/tag/1/favorites/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.delete(\n \"http://localhost:8088/api/v1/tag/1/favorites/\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.status_code)" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/1/favorites/\",\n {\n method: \"DELETE\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconsole.log(response.status);" + } ] }, "post": { @@ -28094,6 +35149,9 @@ } }, "type": "object" + }, + "example": { + "result": {} } } }, @@ -28119,6 +35177,25 @@ ], "tags": [ "Tags" + ], + "operationId": "create_tag_by_pk_favorites", + "summary": "Create tag by pk favorites", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X POST \"http://localhost:8088/api/v1/tag/1/favorites/\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.post(\n \"http://localhost:8088/api/v1/tag/1/favorites/\",\n headers={\"Authorization\": \"Bearer \" + access_token},\n json={\"key\": \"value\"}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/tag/1/favorites/\",\n {\n method: \"POST\",\n headers: {\n \"Authorization\": `Bearer ${accessToken}`,\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify({ key: \"value\" })\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -28150,6 +35227,23 @@ "summary": "Get the user avatar", "tags": [ "User" + ], + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/v1/user/{user_id}/avatar.png\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/v1/user/{user_id}/avatar.png\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/v1/user/{user_id}/avatar.png\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } }, @@ -28191,13 +35285,197 @@ ], "tags": [ "OpenApi" + ], + "operationId": "get_api_by_version__openapi", + "summary": "Get api by version openapi", + "x-codeSamples": [ + { + "lang": "cURL", + "label": "cURL", + "source": "curl -X GET \"http://localhost:8088/api/{version}/_openapi\" \\\n -H \"Authorization: Bearer $ACCESS_TOKEN\"" + }, + { + "lang": "Python", + "label": "Python", + "source": "import requests\n\nresponse = requests.get(\n \"http://localhost:8088/api/{version}/_openapi\",\n headers={\"Authorization\": \"Bearer \" + access_token}\n)\nprint(response.json())" + }, + { + "lang": "JavaScript", + "label": "JavaScript", + "source": "const response = await fetch(\n \"http://localhost:8088/api/{version}/_openapi\",\n {\n headers: {\n \"Authorization\": `Bearer ${accessToken}`\n }\n }\n);\nconst data = await response.json();\nconsole.log(data);" + } ] } } }, "servers": [ { - "url": "http://localhost:8088" + "url": "http://localhost:8088", + "description": "Local development server" + }, + { + "url": "{protocol}://{host}:{port}", + "description": "Custom server", + "variables": { + "protocol": { + "default": "http", + "enum": [ + "http", + "https" + ], + "description": "HTTP protocol" + }, + "host": { + "default": "localhost", + "description": "Server hostname or IP" + }, + "port": { + "default": "8088", + "description": "Server port" + } + } + } + ], + "tags": [ + { + "name": "Advanced Data Type", + "description": "Endpoints for advanced data type operations and conversions." + }, + { + "name": "Annotation Layers", + "description": "Manage annotation layers and annotations for charts." + }, + { + "name": "AsyncEventsRestApi", + "description": "Real-time event streaming via Server-Sent Events (SSE)." + }, + { + "name": "Available Domains", + "description": "Get available domains for the Superset instance." + }, + { + "name": "CSS Templates", + "description": "Manage CSS templates for custom dashboard styling." + }, + { + "name": "CacheRestApi", + "description": "Cache management and invalidation operations." + }, + { + "name": "Charts", + "description": "Create, read, update, and delete charts (slices)." + }, + { + "name": "Current User", + "description": "Get information about the currently authenticated user." + }, + { + "name": "Dashboard Filter State", + "description": "Manage temporary filter state for dashboards." + }, + { + "name": "Dashboard Permanent Link", + "description": "Create and retrieve permanent links to dashboard states." + }, + { + "name": "Dashboards", + "description": "Create, read, update, and delete dashboards." + }, + { + "name": "Database", + "description": "Manage database connections and metadata." + }, + { + "name": "Datasets", + "description": "Manage datasets (tables) used for building charts." + }, + { + "name": "Datasources", + "description": "Query datasource metadata and column values." + }, + { + "name": "Embedded Dashboard", + "description": "Configure embedded dashboard settings." + }, + { + "name": "Explore", + "description": "Chart exploration and data querying endpoints." + }, + { + "name": "Explore Form Data", + "description": "Manage temporary form data for chart exploration." + }, + { + "name": "Explore Permanent Link", + "description": "Create and retrieve permanent links to chart explore states." + }, + { + "name": "Import/export", + "description": "Import and export Superset assets (dashboards, charts, databases)." + }, + { + "name": "LogRestApi", + "description": "Access audit logs and activity history." + }, + { + "name": "Menu", + "description": "Get the Superset menu structure." + }, + { + "name": "OpenApi", + "description": "Access the OpenAPI specification." + }, + { + "name": "Queries", + "description": "View and manage SQL Lab query history." + }, + { + "name": "Report Schedules", + "description": "Configure scheduled reports and alerts." + }, + { + "name": "Row Level Security", + "description": "Manage row-level security rules for data access control." + }, + { + "name": "SQL Lab", + "description": "Execute SQL queries and manage SQL Lab sessions." + }, + { + "name": "SQL Lab Permanent Link", + "description": "Create and retrieve permanent links to SQL Lab states." + }, + { + "name": "Security", + "description": "Authentication and token management." + }, + { + "name": "Security Permissions", + "description": "View available permissions." + }, + { + "name": "Security Permissions on Resources (View Menus)", + "description": "Manage permission-resource mappings." + }, + { + "name": "Security Resources (View Menus)", + "description": "Manage security resources (view menus)." + }, + { + "name": "Security Roles", + "description": "Manage security roles and their permissions." + }, + { + "name": "Security Users", + "description": "Manage user accounts." + }, + { + "name": "Tags", + "description": "Organize assets with tags." + }, + { + "name": "User", + "description": "User profile and preferences." } ] } diff --git a/docs/yarn.lock b/docs/yarn.lock index d6026703551..5a171ac1ca0 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -268,6 +268,15 @@ resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-8.1.1.tgz#95b1947d292a9a2efffba2081796dcaa05ecedfb" integrity sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ== +"@apidevtools/json-schema-ref-parser@^11.5.4": + version "11.9.3" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.9.3.tgz#0e0c9061fc41cf03737d499a4e6a8299fdd2bfa7" + integrity sha512-60vepv88RwcJtSHrD6MjIL6Ta3SOYbgfnkHb+ppAVK+o9mXprRtulx7VlRl3lN3bbvysAfCS7WMVfhUYemB0IQ== + dependencies: + "@jsdevtools/ono" "^7.1.3" + "@types/json-schema" "^7.0.15" + js-yaml "^4.1.0" + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.27.1": version "7.27.1" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.27.1.tgz#200f715e66d52a23b221a9435534a91cc13ad5be" @@ -2412,6 +2421,16 @@ "@eslint/core" "^0.17.0" levn "^0.4.1" +"@exodus/schemasafe@^1.0.0-rc.2": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@exodus/schemasafe/-/schemasafe-1.3.0.tgz#731656abe21e8e769a7f70a4d833e6312fe59b7f" + integrity sha512-5Aap/GaRupgNx/feGBwLLTVv8OQFfv3pq2lPRzPg9R+IOBnDgghTGW7l7EuVXOvg5cc/xSAlRW8rBrjIC3Nvqw== + +"@faker-js/faker@5.5.3": + version "5.5.3" + resolved "https://registry.yarnpkg.com/@faker-js/faker/-/faker-5.5.3.tgz#18e3af6b8eae7984072bbeb0c0858474d7c4cefe" + integrity sha512-R11tGE6yIFwqpaIqcfkcg7AICXzFg14+5h5v0TfF/9+RMDL6jhzCy/pxHVOfbALGdtVYdt6JdR21tuxEgl34dw== + "@hapi/hoek@^9.0.0", "@hapi/hoek@^9.3.0": version "9.3.0" resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" @@ -2424,6 +2443,11 @@ dependencies: "@hapi/hoek" "^9.0.0" +"@hookform/error-message@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@hookform/error-message/-/error-message-2.0.1.tgz#6a37419106e13664ad6a29c9dae699ae6cd276b8" + integrity sha512-U410sAr92xgxT1idlu9WWOVjndxLdgPUHEB8Schr27C9eh7/xUnITWpCMF93s+lGiG++D4JnbSnrb5A21AdSNg== + "@humanfs/core@^0.19.1": version "0.19.1" resolved "https://registry.yarnpkg.com/@humanfs/core/-/core-0.19.1.tgz#17c55ca7d426733fe3c561906b8173c336b40a77" @@ -2524,6 +2548,11 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jsdevtools/ono@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== + "@jsonjoy.com/base64@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@jsonjoy.com/base64/-/base64-1.1.2.tgz#cf8ea9dcb849b81c95f14fc0aaa151c6b54d2578" @@ -2643,6 +2672,95 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== +"@parcel/watcher-android-arm64@2.5.6": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.6.tgz#5f32e0dba356f4ac9a11068d2a5c134ca3ba6564" + integrity sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A== + +"@parcel/watcher-darwin-arm64@2.5.6": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.6.tgz#88d3e720b59b1eceffce98dac46d7c40e8be5e8e" + integrity sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA== + +"@parcel/watcher-darwin-x64@2.5.6": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.6.tgz#bf05d76a78bc15974f15ec3671848698b0838063" + integrity sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg== + +"@parcel/watcher-freebsd-x64@2.5.6": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.6.tgz#8bc26e9848e7303ac82922a5ae1b1ef1bdb48a53" + integrity sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng== + +"@parcel/watcher-linux-arm-glibc@2.5.6": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.6.tgz#1328fee1deb0c2d7865079ef53a2ba4cc2f8b40a" + integrity sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ== + +"@parcel/watcher-linux-arm-musl@2.5.6": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.6.tgz#bad0f45cb3e2157746db8b9d22db6a125711f152" + integrity sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg== + +"@parcel/watcher-linux-arm64-glibc@2.5.6": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.6.tgz#b75913fbd501d9523c5f35d420957bf7d0204809" + integrity sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA== + +"@parcel/watcher-linux-arm64-musl@2.5.6": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.6.tgz#da5621a6a576070c8c0de60dea8b46dc9c3827d4" + integrity sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA== + +"@parcel/watcher-linux-x64-glibc@2.5.6": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.6.tgz#ce437accdc4b30f93a090b4a221fd95cd9b89639" + integrity sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ== + +"@parcel/watcher-linux-x64-musl@2.5.6": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.6.tgz#02400c54b4a67efcc7e2327b249711920ac969e2" + integrity sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg== + +"@parcel/watcher-win32-arm64@2.5.6": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.6.tgz#caae3d3c7583ca0a7171e6bd142c34d20ea1691e" + integrity sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q== + +"@parcel/watcher-win32-ia32@2.5.6": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.6.tgz#9ac922550896dfe47bfc5ae3be4f1bcaf8155d6d" + integrity sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g== + +"@parcel/watcher-win32-x64@2.5.6": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.6.tgz#73fdafba2e21c448f0e456bbe13178d8fe11739d" + integrity sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw== + +"@parcel/watcher@^2.4.1": + version "2.5.6" + resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-2.5.6.tgz#3f932828c894f06d0ad9cfefade1756ecc6ef1f1" + integrity sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ== + dependencies: + detect-libc "^2.0.3" + is-glob "^4.0.3" + node-addon-api "^7.0.0" + picomatch "^4.0.3" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.5.6" + "@parcel/watcher-darwin-arm64" "2.5.6" + "@parcel/watcher-darwin-x64" "2.5.6" + "@parcel/watcher-freebsd-x64" "2.5.6" + "@parcel/watcher-linux-arm-glibc" "2.5.6" + "@parcel/watcher-linux-arm-musl" "2.5.6" + "@parcel/watcher-linux-arm64-glibc" "2.5.6" + "@parcel/watcher-linux-arm64-musl" "2.5.6" + "@parcel/watcher-linux-x64-glibc" "2.5.6" + "@parcel/watcher-linux-x64-musl" "2.5.6" + "@parcel/watcher-win32-arm64" "2.5.6" + "@parcel/watcher-win32-ia32" "2.5.6" + "@parcel/watcher-win32-x64" "2.5.6" + "@philpl/buble@^0.19.7": version "0.19.7" resolved "https://registry.yarnpkg.com/@philpl/buble/-/buble-0.19.7.tgz#27231e6391393793b64bc1c982fc7b593198b893" @@ -3080,6 +3198,48 @@ "@rc-component/util" "^1.4.0" clsx "^2.1.1" +"@redocly/ajv@^8.11.2": + version "8.17.2" + resolved "https://registry.yarnpkg.com/@redocly/ajv/-/ajv-8.17.2.tgz#17abe1f8b6d17c1d4185be5359bac394b13bec4d" + integrity sha512-rcbDZOfXAgGEJeJ30aWCVVJvxV9ooevb/m1/SFblO2qHs4cqTk178gx7T/vdslf57EA4lTofrwsq5K8rxK9g+g== + dependencies: + fast-deep-equal "^3.1.3" + fast-uri "^3.0.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + +"@redocly/config@^0.22.0": + version "0.22.2" + resolved "https://registry.yarnpkg.com/@redocly/config/-/config-0.22.2.tgz#9a05e694816d53a5236cf8768d3cad0e49d8b116" + integrity sha512-roRDai8/zr2S9YfmzUfNhKjOF0NdcOIqF7bhf4MVC5UxpjIysDjyudvlAiVbpPHp3eDRWbdzUgtkK1a7YiDNyQ== + +"@redocly/openapi-core@^1.34.3": + version "1.34.6" + resolved "https://registry.yarnpkg.com/@redocly/openapi-core/-/openapi-core-1.34.6.tgz#6230b140530dc6f1d0684c52d0f31dce0ef3cb3b" + integrity sha512-2+O+riuIUgVSuLl3Lyh5AplWZyVMNuG2F98/o6NrutKJfW4/GTZdPpZlIphS0HGgcOHgmWcCSHj+dWFlZaGSHw== + dependencies: + "@redocly/ajv" "^8.11.2" + "@redocly/config" "^0.22.0" + colorette "^1.2.0" + https-proxy-agent "^7.0.5" + js-levenshtein "^1.1.6" + js-yaml "^4.1.0" + minimatch "^5.0.1" + pluralize "^8.0.0" + yaml-ast-parser "0.0.43" + +"@reduxjs/toolkit@^2.5.0", "@reduxjs/toolkit@^2.8.2": + version "2.11.2" + resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-2.11.2.tgz#582225acea567329ca6848583e7dd72580d38e82" + integrity sha512-Kd6kAHTA6/nUpp8mySPqj3en3dm0tdMIgbttnQ1xFMVpufoj+ADi8pXLBsd4xzTRHQa7t/Jv8W5UnCuW4kuWMQ== + dependencies: + "@standard-schema/spec" "^1.0.0" + "@standard-schema/utils" "^0.3.0" + immer "^11.0.0" + redux "^5.0.1" + redux-thunk "^3.1.0" + reselect "^5.1.0" + "@saucelabs/theme-github-codeblock@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@saucelabs/theme-github-codeblock/-/theme-github-codeblock-0.3.0.tgz#7936bc6aa97a15f2483ac143df4918c8d2baf5f0" @@ -3136,6 +3296,11 @@ resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.0.0.tgz#f193b73dc316c4170f2e82a881da0f550d551b9c" integrity sha512-m2bOd0f2RT9k8QJx1JN85cZYyH1RqFBdlwtkSlf4tBDYLCiiZnv1fIIwacK6cqwXavOydf0NPToMQgpKq+dVlA== +"@standard-schema/utils@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@standard-schema/utils/-/utils-0.3.0.tgz#3d5e608f16c2390c10528e98e59aef6bf73cae7b" + integrity sha512-e7Mew686owMaPJVNNLs55PUvgz371nKgwsc4vxE49zsODpJEnxgxRo2y/OKrqueavXgZNMDVj3DdHFlaSAeU8g== + "@storybook/addon-docs@^8.6.15": version "8.6.15" resolved "https://registry.yarnpkg.com/@storybook/addon-docs/-/addon-docs-8.6.15.tgz#d1c64a0293a7803080a4dbb5aa4ff3903736196b" @@ -4745,6 +4910,11 @@ address@^1.0.1: resolved "https://registry.yarnpkg.com/address/-/address-1.2.2.tgz#2b5248dac5485a6390532c6a517fda2e3faac89e" integrity sha512-4B/qKCfeE/ODUaAUpSwfzazo5x29WD4r3vXiWsB7I2mSDAihwEqKO+g8GELZUQSSAo5e1XTYh3ZVfLyxBc12nA== +agent-base@^7.1.2: + version "7.1.4" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8" + integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ== + aggregate-error@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" @@ -4763,7 +4933,12 @@ ai@5.0.61, ai@^5.0.30: "@ai-sdk/provider-utils" "3.0.10" "@opentelemetry/api" "1.9.0" -ajv-formats@^2.1.1: +ajv-draft-04@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz#3b64761b268ba0b9e668f0b41ba53fce0ad77fc8" + integrity sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw== + +ajv-formats@2.1.1, ajv-formats@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== @@ -4792,7 +4967,7 @@ ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.9.0: +ajv@^8.0.0, ajv@^8.11.0, ajv@^8.9.0: version "8.17.1" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.17.1.tgz#37d9a5c776af6bc92d7f4f9510eba4c0a60d11a6" integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== @@ -4829,6 +5004,13 @@ algoliasearch@^5.28.0, algoliasearch@^5.37.0: "@algolia/requester-fetch" "5.40.0" "@algolia/requester-node-http" "5.40.0" +allof-merge@^0.6.6: + version "0.6.7" + resolved "https://registry.yarnpkg.com/allof-merge/-/allof-merge-0.6.7.tgz#9acb1ea42257ddcf261a186f8ce47dc16e5a6832" + integrity sha512-slvjkM56OdeVkm1tllrnaumtSHwqyHrepXkAe6Am+CW4WdbHkNqdOKPF6cvY3/IouzvXk1BoLICT5LY7sCoFGw== + dependencies: + json-crawl "^0.5.3" + ansi-align@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.1.tgz#0cdf12e111ace773a86e9a1fad1225c43cb19a59" @@ -5071,6 +5253,16 @@ async-function@^1.0.0: resolved "https://registry.yarnpkg.com/async-function/-/async-function-1.0.0.tgz#509c9fca60eaf85034c6829838188e4e4c8ffb2b" integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== +async@3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd" + integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g== + +async@3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" + integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -5377,6 +5569,11 @@ call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: call-bind-apply-helpers "^1.0.2" get-intrinsic "^1.3.0" +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -5467,6 +5664,11 @@ character-reference-invalid@^2.0.0: resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== +charset@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/charset/-/charset-1.0.1.tgz#8d59546c355be61049a8fa9164747793319852bd" + integrity sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg== + cheerio-select@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-2.1.0.tgz#4d8673286b8126ca2a8e42740d5e3c4884ae21b4" @@ -5526,6 +5728,13 @@ chokidar@^3.5.3, chokidar@^3.6.0: optionalDependencies: fsevents "~2.3.2" +chokidar@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-4.0.3.tgz#7be37a4c03c9aee1ecfe862a4a23b2c70c205d30" + integrity sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA== + dependencies: + readdirp "^4.0.1" + chrome-trace-event@^1.0.2: version "1.0.4" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz#05bffd7ff928465093314708c93bdfa9bd1f0f5b" @@ -5567,6 +5776,15 @@ cli-table3@^0.6.3: optionalDependencies: "@colors/colors" "1.5.0" +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -5615,6 +5833,11 @@ colord@^2.9.3: resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== +colorette@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" + integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== + colorette@^2.0.10: version "2.0.20" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" @@ -5637,6 +5860,11 @@ comma-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== +commander@2.20.3, commander@^2.20.0, commander@^2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commander@7, commander@^7.2.0: version "7.2.0" resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" @@ -5647,11 +5875,6 @@ commander@^10.0.0: resolved "https://registry.yarnpkg.com/commander/-/commander-10.0.1.tgz#881ee46b4f77d1c1dccc5823433aa39b022cbe06" integrity sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug== -commander@^2.20.0, commander@^2.20.3: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - commander@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -5692,6 +5915,25 @@ compression@^1.7.4: safe-buffer "5.2.1" vary "~1.1.2" +compute-gcd@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/compute-gcd/-/compute-gcd-1.2.1.tgz#34d639f3825625e1357ce81f0e456a6249d8c77f" + integrity sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg== + dependencies: + validate.io-array "^1.0.3" + validate.io-function "^1.0.2" + validate.io-integer-array "^1.0.0" + +compute-lcm@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/compute-lcm/-/compute-lcm-1.1.2.tgz#9107c66b9dca28cefb22b4ab4545caac4034af23" + integrity sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ== + dependencies: + compute-gcd "^1.2.1" + validate.io-array "^1.0.3" + validate.io-function "^1.0.2" + validate.io-integer-array "^1.0.0" + compute-scroll-into-view@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz#02c3386ec531fb6a9881967388e53e8564f3e9aa" @@ -5785,6 +6027,11 @@ copy-anything@^2.0.1: dependencies: is-what "^3.14.1" +copy-text-to-clipboard@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/copy-text-to-clipboard/-/copy-text-to-clipboard-3.2.2.tgz#99bc79db3f2d355ec33a08d573aff6804491ddb9" + integrity sha512-T6SqyLd1iLuqPA90J5N4cTalrtovCySh58iiZDGJ6FGznbclKh4UI+FGacQSgFzwKG77W7XT5gwbVEbd9cIH1A== + copy-to-clipboard@^3.3.1: version "3.3.3" resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0" @@ -5870,6 +6117,11 @@ cross-spawn@^7.0.3, cross-spawn@^7.0.6: shebang-command "^2.0.0" which "^2.0.1" +crypto-js@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" + integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== + crypto-random-string@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-4.0.0.tgz#5a3cc53d7dd86183df5da0312816ceeeb5bb1fc2" @@ -6569,11 +6821,23 @@ destroy@1.2.0, destroy@~1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== +detect-libc@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad" + integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ== + detect-node@^2.0.4: version "2.1.0" resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== +detect-package-manager@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/detect-package-manager/-/detect-package-manager-3.0.2.tgz#ca34261ab84198072580e93ae86582c575428da9" + integrity sha512-8JFjJHutStYrfWwzfretQoyNGoZVW1Fsrp4JO9spa7h/fBfwgTMEIy4/LBzRDGsxwVPHU0q+T9YvwLDJoOApLQ== + dependencies: + execa "^5.1.1" + detect-port@^1.5.1: version "1.6.1" resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.6.1.tgz#45e4073997c5f292b957cb678fb0bb8ed4250a67" @@ -6620,6 +6884,60 @@ docusaurus-plugin-less@^2.0.2: resolved "https://registry.yarnpkg.com/docusaurus-plugin-less/-/docusaurus-plugin-less-2.0.2.tgz#63bf04a5539a3b8ddc38bf527b51eb135b60f528" integrity sha512-ez6WSSvGS8HoJslYHeG5SflyShWvHFXeTTHXPBd3H1T3zgq9wp6wD7scXm+rXyyfhFhP5VNiIqhYB78z4OLjwg== +docusaurus-plugin-openapi-docs@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/docusaurus-plugin-openapi-docs/-/docusaurus-plugin-openapi-docs-4.6.0.tgz#2b89a3d23f1836a3691f076860dd67013b4800ab" + integrity sha512-wcRUnZca9hRiuAcw2Iz+YUVO4dh01mV2FoAtomRMVlWZIEgw6TA5SqsfHWRd6on/ibvvVS9Lq6GjZTcSjwLcWQ== + dependencies: + "@apidevtools/json-schema-ref-parser" "^11.5.4" + "@redocly/openapi-core" "^1.34.3" + allof-merge "^0.6.6" + chalk "^4.1.2" + clsx "^2.1.1" + fs-extra "^11.3.0" + json-pointer "^0.6.2" + json5 "^2.2.3" + lodash "^4.17.21" + mustache "^4.2.0" + openapi-to-postmanv2 "^5.0.0" + postman-collection "^5.0.2" + slugify "^1.6.6" + swagger2openapi "^7.0.8" + xml-formatter "^3.6.6" + +docusaurus-theme-openapi-docs@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/docusaurus-theme-openapi-docs/-/docusaurus-theme-openapi-docs-4.6.0.tgz#d01965cef49764c861b4c4920c363ac4bf88cb82" + integrity sha512-YCgYReVMcrKDTNvM4dh9+i+ies+sGbCwv12TRCPZZbeif7RqTc/5w4rhxEIfp/v0uOAQGL4iXfTSBAMExotbMQ== + dependencies: + "@hookform/error-message" "^2.0.1" + "@reduxjs/toolkit" "^2.8.2" + allof-merge "^0.6.6" + buffer "^6.0.3" + clsx "^2.1.1" + copy-text-to-clipboard "^3.2.0" + crypto-js "^4.2.0" + file-saver "^2.0.5" + lodash "^4.17.21" + pako "^2.1.0" + postman-code-generators "^2.0.0" + postman-collection "^5.0.2" + prism-react-renderer "^2.4.1" + process "^0.11.10" + react-hook-form "^7.59.0" + react-live "^4.1.8" + react-magic-dropzone "^1.0.1" + react-markdown "^10.1.0" + react-modal "^3.16.3" + react-redux "^9.2.0" + rehype-raw "^7.0.0" + remark-gfm "4.0.1" + sass "^1.89.2" + sass-loader "^16.0.5" + unist-util-visit "^5.0.0" + url "^0.11.4" + xml-formatter "^3.6.6" + dom-converter@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" @@ -6940,6 +7258,11 @@ es-to-primitive@^1.3.0: is-date-object "^1.0.5" is-symbol "^1.0.4" +es6-promise@^3.2.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg== + esast-util-from-estree@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz#8d1cfb51ad534d2f159dc250e604f3478a79f1ad" @@ -7269,7 +7592,7 @@ eventsource-parser@^3.0.5: resolved "https://registry.yarnpkg.com/eventsource-parser/-/eventsource-parser-3.0.6.tgz#292e165e34cacbc936c3c92719ef326d4aeb4e90" integrity sha512-Vo1ab+QXPzZ4tCa8SwIHJFaSzy4R6SHf7BY79rFBDf0idraZWAkYrDjDj8uWaSm3S2TK+hJ7/t1CEmZ7jXw+pg== -execa@5.1.1: +execa@5.1.1, execa@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== @@ -7284,6 +7607,11 @@ execa@5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +exenv@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" + integrity sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw== + express@^4.21.2: version "4.22.0" resolved "https://registry.yarnpkg.com/express/-/express-4.22.0.tgz#a9d7abdce6d774ed1b4479019387763d1798bd03" @@ -7374,6 +7702,11 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== +fast-safe-stringify@^2.0.7: + version "2.1.1" + resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" + integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== + fast-uri@^3.0.1: version "3.0.6" resolved "https://registry.yarnpkg.com/fast-uri/-/fast-uri-3.0.6.tgz#88f130b77cfaea2378d56bf970dea21257a68748" @@ -7446,6 +7779,16 @@ file-loader@^6.2.0: loader-utils "^2.0.0" schema-utils "^3.0.0" +file-saver@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/file-saver/-/file-saver-2.0.5.tgz#d61cfe2ce059f414d899e9dd6d4107ee25670c38" + integrity sha512-P9bmyZ3h/PRG+Nzga+rbdI4OEpNDzAVyy74uVO9ATgzLK6VtAsYybF/+TOCvrc0MO793d6+42lLyZTw7/ArVzA== + +file-type@3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/file-type/-/file-type-3.9.0.tgz#257a078384d1db8087bc449d107d52a52672b9e9" + integrity sha512-RLoqTXE8/vPmMuTI88DAzhMYC99I8BWv7zYP4A1puo5HIjEJ5EX48ighy4ZyKMG9EDXxBgW6e++cn7d1xuFghA== + fill-range@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" @@ -7525,6 +7868,11 @@ for-each@^0.3.3, for-each@^0.3.5: dependencies: is-callable "^1.2.7" +foreach@^2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.6.tgz#87bcc8a1a0e74000ff2bf9802110708cfb02eb6e" + integrity sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg== + form-data-encoder@^2.1.2: version "2.1.4" resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" @@ -7570,6 +7918,20 @@ fs-extra@^11.1.1, fs-extra@^11.2.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.3.0: + version "11.3.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.3.tgz#a27da23b72524e81ac6c3815cc0179b8c74c59ee" + integrity sha512-VWSRii4t0AFm6ixFFmLLx1t7wS1gh+ckoa84aOeapGum0h+EZd1EhEumSB+ZdDLnEPuucsVB9oB7cxJHap6Afg== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + fsevents@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" @@ -7602,6 +7964,11 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" @@ -7679,6 +8046,18 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== +glob@^7.0.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + global-dirs@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-3.0.1.tgz#0c488971f066baceda21447aecb1a8b911d22485" @@ -7764,6 +8143,13 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +graphlib@2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.8.tgz#5761d414737870084c92ec7b5dbcb0592c9d35da" + integrity sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A== + dependencies: + lodash "^4.17.15" + gray-matter@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" @@ -8052,6 +8438,11 @@ html-tags@^3.3.1: resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-3.3.1.tgz#a04026a18c882e4bba8a01a3d39cfe465d40b5ce" integrity sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ== +html-url-attributes@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/html-url-attributes/-/html-url-attributes-3.0.1.tgz#83b052cd5e437071b756cd74ae70f708870c2d87" + integrity sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ== + html-void-elements@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" @@ -8155,6 +8546,16 @@ http-proxy@^1.18.1: follow-redirects "^1.0.0" requires-port "^1.0.0" +http-reasons@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/http-reasons/-/http-reasons-0.1.0.tgz#a953ca670078669dde142ce899401b9d6e85d3b4" + integrity sha512-P6kYh0lKZ+y29T2Gqz+RlC9WBLhKe8kDmcJ+A+611jFfxdPsbMRQ5aNmFRM3lENqFkK+HTTL+tlQviAiv0AbLQ== + +http2-client@^1.2.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/http2-client/-/http2-client-1.3.5.tgz#20c9dc909e3cc98284dd20af2432c524086df181" + integrity sha512-EC2utToWl4RKfs5zd36Mxq7nzHHBuomZboI0yYL6Y0RmBgT7Sgkq4rQ0ezFTYoIsSs7Tm9SJe+o2FcAg6GBhGA== + http2-wrapper@^2.1.10: version "2.2.1" resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.1.tgz#310968153dcdedb160d8b72114363ef5fce1f64a" @@ -8163,6 +8564,14 @@ http2-wrapper@^2.1.10: quick-lru "^5.1.1" resolve-alpn "^1.2.0" +https-proxy-agent@^7.0.5: + version "7.0.6" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz#da8dfeac7da130b05c2ba4b59c9b6cd66611a6b9" + integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== + dependencies: + agent-base "^7.1.2" + debug "4" + human-signals@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" @@ -8173,7 +8582,7 @@ hyperdyperid@^1.2.0: resolved "https://registry.yarnpkg.com/hyperdyperid/-/hyperdyperid-1.2.0.tgz#59668d323ada92228d2a869d3e474d5a33b69e6b" integrity sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A== -iconv-lite@0.6, iconv-lite@^0.6.3: +iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -8217,11 +8626,21 @@ image-size@~0.5.0: resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== +immer@^11.0.0: + version "11.1.3" + resolved "https://registry.yarnpkg.com/immer/-/immer-11.1.3.tgz#78681e1deb6cec39753acf04eb16d7576c04f4d6" + integrity sha512-6jQTc5z0KJFtr1UgFpIL3N9XSC3saRaI9PwWtzM2pSqkNGtiNkYY2OSwkOGDK2XcTRcLb1pi/aNkKZz0nxVH4Q== + immutable@^3.x.x: version "3.8.2" resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== +immutable@^5.0.2: + version "5.1.4" + resolved "https://registry.yarnpkg.com/immutable/-/immutable-5.1.4.tgz#e3f8c1fe7b567d56cf26698f31918c241dae8c1f" + integrity sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA== + import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.1" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.1.tgz#9cecb56503c0ada1f2741dbbd6546e4b13b57ccf" @@ -8250,16 +8669,24 @@ infima@0.2.0-alpha.45: resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.45.tgz#542aab5a249274d81679631b492973dd2c1e7466" integrity sha512-uyH0zfr1erU1OohLk0fT4Rrb94AOhguWNOcD9uGrSpRvNB+6gZXUoJX5J0NtvzBO10YZ9PgvA4NFgt+fYg8ojw== +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + inherits@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3, inherits@~2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - ini@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ini/-/ini-2.0.0.tgz#e5fd556ecdd5726be978fa1001862eacb0a94bc5" @@ -8299,6 +8726,11 @@ internmap@^1.0.0: resolved "https://registry.yarnpkg.com/internmap/-/internmap-1.0.1.tgz#0017cc8a3b99605f0302f2b198d272e015e5df95" integrity sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw== +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" @@ -8401,7 +8833,7 @@ is-ci@^3.0.1: dependencies: ci-info "^3.2.0" -is-core-module@^2.13.0, is-core-module@^2.16.0: +is-core-module@^2.13.0, is-core-module@^2.16.0, is-core-module@^2.16.1: version "2.16.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== @@ -8768,6 +9200,11 @@ js-file-download@^0.4.12: resolved "https://registry.yarnpkg.com/js-file-download/-/js-file-download-0.4.12.tgz#10c70ef362559a5b23cdbdc3bd6f399c3d91d821" integrity sha512-rML+NkoD08p5Dllpjo0ffy4jRHeY6Zsapvr/W86N7E0yuzAO6qa5X9+xog6zQNlH102J7IXljNY2FtS6Lj3ucg== +js-levenshtein@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" + integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -8782,6 +9219,13 @@ js-yaml-loader@^1.2.2: loader-utils "^1.2.3" un-eval "^1.2.0" +js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + js-yaml@=4.1.1, js-yaml@^4.1.0, js-yaml@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.1.tgz#854c292467705b699476e1a2decc0c8a3458806b" @@ -8829,11 +9273,39 @@ json-buffer@3.0.1: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== +json-crawl@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/json-crawl/-/json-crawl-0.5.3.tgz#3a2e1d308d4fc5a444902f1f94f4a9e03d584c6b" + integrity sha512-BEjjCw8c7SxzNK4orhlWD5cXQh8vCk2LqDr4WgQq4CV+5dvopeYwt1Tskg67SuSLKvoFH5g0yuYtg7rcfKV6YA== + json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== +json-pointer@0.6.2, json-pointer@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/json-pointer/-/json-pointer-0.6.2.tgz#f97bd7550be5e9ea901f8c9264c9d436a22a93cd" + integrity sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw== + dependencies: + foreach "^2.0.4" + +json-schema-compare@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/json-schema-compare/-/json-schema-compare-0.2.2.tgz#dd601508335a90c7f4cfadb6b2e397225c908e56" + integrity sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ== + dependencies: + lodash "^4.17.4" + +json-schema-merge-allof@0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/json-schema-merge-allof/-/json-schema-merge-allof-0.8.1.tgz#ed2828cdd958616ff74f932830a26291789eaaf2" + integrity sha512-CTUKmIlPJbsWfzRRnOXz+0MjIqvnleIXwFTzz+t9T86HnYX/Rozria6ZVGLktAU9e+NygNljveP+yxqtQp/Q4w== + dependencies: + compute-lcm "^1.1.2" + json-schema-compare "^0.2.2" + lodash "^4.17.20" + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -9012,6 +9484,11 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== +liquid-json@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/liquid-json/-/liquid-json-0.3.1.tgz#9155a18136d8a6b2615e5f16f9a2448ab6b50eea" + integrity sha512-wUayTU8MS827Dam6MxgD72Ui+KOSF+u/eIqpatOtjnvgJ0+mnDq33uC2M7J0tPK+upe/DpUAuK4JUU89iBoNKQ== + loader-runner@^4.3.1: version "4.3.1" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.3.1.tgz#6c76ed29b0ccce9af379208299f07f876de737e3" @@ -9083,7 +9560,12 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.20, lodash@^4.17.21: +lodash@4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lodash@^4.15.0, lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4: version "4.17.23" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.23.tgz#f113b0378386103be4f6893388c73d0bde7f2c5a" integrity sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w== @@ -10125,6 +10607,13 @@ mime-db@~1.33.0: resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== +mime-format@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mime-format/-/mime-format-2.0.2.tgz#77fa304b9aedb21439c4db010305146edbd8a912" + integrity sha512-Y5ERWVcyh3sby9Fx2U5F1yatiTFjNsqF5NltihTWI9QgNtr5o3dbCZdcKa1l2wyfhnwwoP9HGNxga7LqZLA6gw== + dependencies: + charset "^1.0.0" + mime-types@2.1.18: version "2.1.18" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" @@ -10151,6 +10640,11 @@ mime@1.6.0, mime@^1.4.1: resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== +mime@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-3.0.0.tgz#b374550dca3a0c18443b0c950a6a58f1931cf7a7" + integrity sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A== + mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" @@ -10186,13 +10680,20 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@3.1.2, minimatch@^3.1.2: +minimatch@3.1.2, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + minimatch@^7.4.3: version "7.4.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb" @@ -10250,6 +10751,11 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" +mustache@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" + integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== + mz@^2.7.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" @@ -10292,6 +10798,11 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== +neotraverse@0.6.15: + version "0.6.15" + resolved "https://registry.yarnpkg.com/neotraverse/-/neotraverse-0.6.15.tgz#dc4abb64700c52440f13bc53635b559862420360" + integrity sha512-HZpdkco+JeXq0G+WWpMJ4NsX3pqb5O7eR9uGz3FfoFt+LYzU8iRWp49nJtud6hsDoywM8tIrDo3gjgmOqJA8LA== + neotraverse@=0.6.18: version "0.6.18" resolved "https://registry.yarnpkg.com/neotraverse/-/neotraverse-0.6.18.tgz#abcb33dda2e8e713cf6321b29405e822230cdb30" @@ -10310,6 +10821,11 @@ node-abort-controller@^3.1.1: resolved "https://registry.yarnpkg.com/node-abort-controller/-/node-abort-controller-3.1.1.tgz#a94377e964a9a37ac3976d848cb5c765833b8548" integrity sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ== +node-addon-api@^7.0.0: + version "7.1.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.1.1.tgz#1aba6693b0f255258a049d621329329322aad558" + integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== + node-addon-api@^8.0.0, node-addon-api@^8.2.2, node-addon-api@^8.3.0, node-addon-api@^8.3.1: version "8.5.0" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-8.5.0.tgz#c91b2d7682fa457d2e1c388150f0dff9aafb8f3f" @@ -10338,6 +10854,20 @@ node-fetch-commonjs@^3.3.2: node-domexception "^1.0.0" web-streams-polyfill "^3.0.3" +node-fetch-h2@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/node-fetch-h2/-/node-fetch-h2-2.3.0.tgz#c6188325f9bd3d834020bf0f2d6dc17ced2241ac" + integrity sha512-ofRW94Ab0T4AOh5Fk8t0h8OBWrmjb0SSB20xh1H8YnPV9EJ+f5AMoYSUQ2zgJ4Iq2HAK0I2l5/Nequ8YzFS3Hg== + dependencies: + http2-client "^1.2.5" + +node-fetch@^2.6.1: + version "2.7.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== + dependencies: + whatwg-url "^5.0.0" + node-forge@^1: version "1.3.2" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.2.tgz#d0d2659a26eef778bf84d73e7f55c08144ee7750" @@ -10348,6 +10878,13 @@ node-gyp-build@^4.8.0, node-gyp-build@^4.8.2, node-gyp-build@^4.8.4: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.4.tgz#8a70ee85464ae52327772a90d66c6077a900cfc8" integrity sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ== +node-readfiles@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/node-readfiles/-/node-readfiles-0.2.0.tgz#dbbd4af12134e2e635c245ef93ffcf6f60673a5d" + integrity sha512-SU00ZarexNlE4Rjdm83vglt5Y9yiQ+XI1XpflWlb7q7UTN1JUItm69xMeiQCTxtTfnzt+83T8Cx+vI2ED++VDA== + dependencies: + es6-promise "^3.2.1" + node-releases@^2.0.27: version "2.0.27" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.27.tgz#eedca519205cf20f650f61d56b070db111231e4e" @@ -10395,11 +10932,74 @@ null-loader@^4.0.1: loader-utils "^2.0.0" schema-utils "^3.0.0" +oas-kit-common@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/oas-kit-common/-/oas-kit-common-1.0.8.tgz#6d8cacf6e9097967a4c7ea8bcbcbd77018e1f535" + integrity sha512-pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ== + dependencies: + fast-safe-stringify "^2.0.7" + +oas-linter@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/oas-linter/-/oas-linter-3.2.2.tgz#ab6a33736313490659035ca6802dc4b35d48aa1e" + integrity sha512-KEGjPDVoU5K6swgo9hJVA/qYGlwfbFx+Kg2QB/kd7rzV5N8N5Mg6PlsoCMohVnQmo+pzJap/F610qTodKzecGQ== + dependencies: + "@exodus/schemasafe" "^1.0.0-rc.2" + should "^13.2.1" + yaml "^1.10.0" + +oas-resolver-browser@2.5.6: + version "2.5.6" + resolved "https://registry.yarnpkg.com/oas-resolver-browser/-/oas-resolver-browser-2.5.6.tgz#1974db66d594fa8c67d3aa866b46b9e2156a8b55" + integrity sha512-Jw5elT/kwUJrnGaVuRWe1D7hmnYWB8rfDDjBnpQ+RYY/dzAewGXeTexXzt4fGEo6PUE4eqKqPWF79MZxxvMppA== + dependencies: + node-fetch-h2 "^2.3.0" + oas-kit-common "^1.0.8" + path-browserify "^1.0.1" + reftools "^1.1.9" + yaml "^1.10.0" + yargs "^17.0.1" + +oas-resolver@^2.5.6: + version "2.5.6" + resolved "https://registry.yarnpkg.com/oas-resolver/-/oas-resolver-2.5.6.tgz#10430569cb7daca56115c915e611ebc5515c561b" + integrity sha512-Yx5PWQNZomfEhPPOphFbZKi9W93CocQj18NlD2Pa4GWZzdZpSJvYwoiuurRI7m3SpcChrnO08hkuQDL3FGsVFQ== + dependencies: + node-fetch-h2 "^2.3.0" + oas-kit-common "^1.0.8" + reftools "^1.1.9" + yaml "^1.10.0" + yargs "^17.0.1" + +oas-schema-walker@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz#74c3cd47b70ff8e0b19adada14455b5d3ac38a22" + integrity sha512-2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ== + +oas-validator@^5.0.8: + version "5.0.8" + resolved "https://registry.yarnpkg.com/oas-validator/-/oas-validator-5.0.8.tgz#387e90df7cafa2d3ffc83b5fb976052b87e73c28" + integrity sha512-cu20/HE5N5HKqVygs3dt94eYJfBi0TsZvPVXDhbXQHiEityDN+RROTleefoKRKKJ9dFAF2JBkDHgvWj0sjKGmw== + dependencies: + call-me-maybe "^1.0.1" + oas-kit-common "^1.0.8" + oas-linter "^3.2.2" + oas-resolver "^2.5.6" + oas-schema-walker "^1.1.5" + reftools "^1.1.9" + should "^13.2.1" + yaml "^1.10.0" + object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== +object-hash@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + object-inspect@^1.13.3, object-inspect@^1.13.4: version "1.13.4" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.4.tgz#8375265e21bc20d0fa582c22e1b13485d6e00213" @@ -10469,6 +11069,13 @@ on-headers@~1.1.0: resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.1.0.tgz#59da4f91c45f5f989c6e4bcedc5a3b0aed70ff65" integrity sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A== +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + onetime@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" @@ -10509,6 +11116,29 @@ openapi-server-url-templating@^1.3.0: dependencies: apg-lite "^1.0.4" +openapi-to-postmanv2@^5.0.0: + version "5.8.0" + resolved "https://registry.yarnpkg.com/openapi-to-postmanv2/-/openapi-to-postmanv2-5.8.0.tgz#d4dd2d5aa25b34cf767fb02011431cdadfd18a34" + integrity sha512-7f02ypBlAx4G9z3bP/uDk8pBwRbYt97Eoso8XJLyclfyRvCC+CvERLUl0MD0x+GoumpkJYnQ0VGdib/kwtUdUw== + dependencies: + ajv "^8.11.0" + ajv-draft-04 "1.0.0" + ajv-formats "2.1.1" + async "3.2.6" + commander "2.20.3" + graphlib "2.1.8" + js-yaml "4.1.0" + json-pointer "0.6.2" + json-schema-merge-allof "0.8.1" + lodash "4.17.21" + neotraverse "0.6.15" + oas-resolver-browser "2.5.6" + object-hash "3.0.0" + path-browserify "1.0.1" + postman-collection "^5.0.0" + swagger2openapi "7.0.8" + yaml "1.10.2" + opener@^1.5.2: version "1.5.2" resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" @@ -10624,6 +11254,11 @@ package-manager-detector@^1.3.0: resolved "https://registry.yarnpkg.com/package-manager-detector/-/package-manager-detector-1.3.0.tgz#b42d641c448826e03c2b354272456a771ce453c0" integrity sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ== +pako@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + param-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" @@ -10705,6 +11340,11 @@ pascal-case@^3.1.2: no-case "^3.0.4" tslib "^2.0.3" +path-browserify@1.0.1, path-browserify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" + integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== + path-data-parser@0.1.0, path-data-parser@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/path-data-parser/-/path-data-parser-0.1.0.tgz#8f5ba5cc70fc7becb3dcefaea08e2659aba60b8c" @@ -10720,6 +11360,11 @@ path-exists@^5.0.0: resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-5.0.0.tgz#a6aad9489200b21fab31e49cf09277e5116fb9e7" integrity sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ== +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + path-is-inside@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" @@ -10757,6 +11402,14 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +path@0.12.7: + version "0.12.7" + resolved "https://registry.yarnpkg.com/path/-/path-0.12.7.tgz#d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f" + integrity sha512-aXXC6s+1w7otVF9UletFkFcDsJeO7lSZBPUQhtb5O0xJe8LtYhj/GxldoL09bBj9+ZmE2hNoHqQSFMN5fikh4Q== + dependencies: + process "^0.11.1" + util "^0.10.3" + pathe@^2.0.1, pathe@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/pathe/-/pathe-2.0.3.tgz#3ecbec55421685b70a9da872b2cff3e1cbed1716" @@ -10812,6 +11465,11 @@ pkg-types@^2.3.0: exsolve "^1.0.7" pathe "^2.0.3" +pluralize@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== + points-on-curve@0.2.0, points-on-curve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/points-on-curve/-/points-on-curve-0.2.0.tgz#7dbb98c43791859434284761330fa893cb81b4d1" @@ -11387,6 +12045,42 @@ postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.33, postcss@^8.5.4: picocolors "^1.1.1" source-map-js "^1.2.1" +postman-code-generators@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postman-code-generators/-/postman-code-generators-2.1.0.tgz#c3e617bb72781fd402a3c0104983d864f8084503" + integrity sha512-PCptfRoq6pyyqeB9qw87MfjpIZEZIykIna7Api9euhYftyrad/kCkIyXfWF6GrkcHv0nYid05xoRPWPX9JHkZg== + dependencies: + async "3.2.2" + detect-package-manager "3.0.2" + lodash "4.17.21" + path "0.12.7" + postman-collection "^5.0.0" + shelljs "0.8.5" + +postman-collection@^5.0.0, postman-collection@^5.0.2: + version "5.2.0" + resolved "https://registry.yarnpkg.com/postman-collection/-/postman-collection-5.2.0.tgz#62885baf632fa4c33de9d9fca78a8daf9121e5f0" + integrity sha512-ktjlchtpoCw+FZRg+WwnGWH1w9oQDNUBLSRh+9ETPqFAz3SupqHqRuMh74xjQ+PvTWY/WH2JR4ZW+1sH58Ul1g== + dependencies: + "@faker-js/faker" "5.5.3" + file-type "3.9.0" + http-reasons "0.1.0" + iconv-lite "0.6.3" + liquid-json "0.3.1" + lodash "4.17.21" + mime "3.0.0" + mime-format "2.0.2" + postman-url-encoder "3.0.8" + semver "7.7.1" + uuid "8.3.2" + +postman-url-encoder@3.0.8: + version "3.0.8" + resolved "https://registry.yarnpkg.com/postman-url-encoder/-/postman-url-encoder-3.0.8.tgz#f4f40c1858301fadc466f0a7825f9bb638857367" + integrity sha512-EOgUMBazo7JNP4TDrd64TsooCiWzzo4143Ws8E8WYGEpn2PKpq+S4XRTDhuRTYHm3VKOpUZs7ZYZq7zSDuesqA== + dependencies: + punycode "^2.3.1" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -11442,7 +12136,7 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== -process@^0.11.10: +process@^0.11.1, process@^0.11.10: version "0.11.10" resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== @@ -11497,7 +12191,12 @@ prr@~1.0.1: resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw== -punycode@^2.1.0: +punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ== + +punycode@^2.1.0, punycode@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== @@ -11509,7 +12208,7 @@ pupa@^3.1.0: dependencies: escape-goat "^4.0.0" -qs@~6.14.0: +qs@^6.12.3, qs@~6.14.0: version "6.14.1" resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159" integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ== @@ -11650,6 +12349,11 @@ react-github-btn@^1.4.0: react-fast-compare "^3.2.0" shallowequal "^1.1.0" +react-hook-form@^7.59.0: + version "7.71.1" + resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-7.71.1.tgz#6a758958861682cf0eb22131eead684ba3618f66" + integrity sha512-9SUJKCGKo8HUSsCO+y0CtqkqI5nNuaDqTxyqPsZPqIwudpj4rCrAz/jZV+jn57bx5gtZKOh3neQu94DXMc+w5w== + react-immutable-proptypes@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/react-immutable-proptypes/-/react-immutable-proptypes-2.2.0.tgz#cce96d68cc3c18e89617cbf3092d08e35126af4a" @@ -11682,7 +12386,12 @@ react-json-view-lite@^2.3.0: resolved "https://registry.yarnpkg.com/react-json-view-lite/-/react-json-view-lite-2.4.2.tgz#796ed6c650c29123d87b9484889445d1a8a88ede" integrity sha512-m7uTsXDgPQp8R9bJO4HD/66+i218eyQPAb+7/dGQpwg8i4z2afTFqtHJPQFHvJfgDCjGQ1HSGlL3HtrZDa3Tdg== -react-live@^4.1.6: +react-lifecycles-compat@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-live@^4.1.6, react-live@^4.1.8: version "4.1.8" resolved "https://registry.yarnpkg.com/react-live/-/react-live-4.1.8.tgz#287fb6c5127c2d89a6fe39380278d95cc8e661b6" integrity sha512-B2SgNqwPuS2ekqj4lcxi5TibEcjWkdVyYykBEUBshPAPDQ527x2zPEZg560n8egNtAjUpwXFQm7pcXV65aAYmg== @@ -11705,6 +12414,28 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: dependencies: "@types/react" "*" +react-magic-dropzone@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/react-magic-dropzone/-/react-magic-dropzone-1.0.1.tgz#bfd25b77b57e7a04aaef0a28910563b707ee54df" + integrity sha512-0BIROPARmXHpk4AS3eWBOsewxoM5ndk2psYP/JmbCq8tz3uR2LIV1XiroZ9PKrmDRMctpW+TvsBCtWasuS8vFA== + +react-markdown@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-10.1.0.tgz#e22bc20faddbc07605c15284255653c0f3bad5ca" + integrity sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + devlop "^1.0.0" + hast-util-to-jsx-runtime "^2.0.0" + html-url-attributes "^3.0.0" + mdast-util-to-hast "^13.0.0" + remark-parse "^11.0.0" + remark-rehype "^11.0.0" + unified "^11.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + react-markdown@^8.0.7: version "8.0.7" resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-8.0.7.tgz#c8dbd1b9ba5f1c5e7e5f2a44de465a3caafdf89b" @@ -11726,6 +12457,16 @@ react-markdown@^8.0.7: unist-util-visit "^4.0.0" vfile "^5.0.0" +react-modal@^3.16.3: + version "3.16.3" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.16.3.tgz#c412d41915782e3c261253435d01468e2439b11b" + integrity sha512-yCYRJB5YkeQDQlTt17WGAgFJ7jr2QYcWa1SHqZ3PluDmnKJ/7+tVU+E6uKyZ0nODaeEj+xCpK4LcSnKXLMC0Nw== + dependencies: + exenv "^1.2.0" + prop-types "^15.7.2" + react-lifecycles-compat "^3.0.0" + warning "^4.0.3" + react-redux@^9.2.0: version "9.2.0" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-9.2.0.tgz#96c3ab23fb9a3af2cb4654be4b51c989e32366f5" @@ -11823,6 +12564,11 @@ readable-stream@^3.0.6: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readdirp@^4.0.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-4.1.2.tgz#eb85801435fbf2a7ee58f19e0921b068fc69948d" + integrity sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg== + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -11841,6 +12587,13 @@ recast@^0.23.5: tiny-invariant "^1.3.3" tslib "^2.0.1" +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + recma-build-jsx@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz#c02f29e047e103d2fab2054954e1761b8ea253c4" @@ -11886,6 +12639,11 @@ redux-immutable@^4.0.0: resolved "https://registry.yarnpkg.com/redux-immutable/-/redux-immutable-4.0.0.tgz#3a1a32df66366462b63691f0e1dc35e472bbc9f3" integrity sha512-SchSn/DWfGb3oAejd+1hhHx01xUoxY+V7TeK0BKqpkLKiQPVFf7DYzEaKmrEVxsWxielKfSK9/Xq66YyxgR1cg== +redux-thunk@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-3.1.0.tgz#94aa6e04977c30e14e892eae84978c1af6058ff3" + integrity sha512-NW2r5T6ksUKXCabzhL9z+h206HQw/NJkcLm1GPImRQ8IzfXwRGqjVhKJGauHirT0DAuyy6hjdnMZaRoAcy0Klw== + redux@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/redux/-/redux-5.0.1.tgz#97fa26881ce5746500125585d5642c77b6e9447b" @@ -11915,6 +12673,11 @@ refractor@^5.0.0: hastscript "^9.0.0" parse-entities "^4.0.0" +reftools@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/reftools/-/reftools-1.1.9.tgz#e16e19f662ccd4648605312c06d34e5da3a2b77e" + integrity sha512-OVede/NQE13xBQ+ob5CKd5KyeJYU2YInb1bmV4nRoOfquZPkAkxuOXicSe1PvqIuZZ4kD13sPKBbR7UFDmli6w== + regenerate-unicode-properties@^10.2.0: version "10.2.0" resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" @@ -12070,7 +12833,7 @@ remark-frontmatter@^5.0.0: micromark-extension-frontmatter "^2.0.0" unified "^11.0.0" -remark-gfm@^4.0.0: +remark-gfm@4.0.1, remark-gfm@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-4.0.1.tgz#33227b2a74397670d357bf05c098eaf8513f0d6b" integrity sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg== @@ -12170,6 +12933,11 @@ repeat-string@^1.0.0, repeat-string@^1.5.2: resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + require-from-string@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" @@ -12190,7 +12958,7 @@ reselect@^4.0.0: resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.8.tgz#3f5dc671ea168dccdeb3e141236f69f02eaec524" integrity sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ== -reselect@^5.1.1: +reselect@^5.1.0, reselect@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/reselect/-/reselect-5.1.1.tgz#c766b1eb5d558291e5e550298adb0becc24bb72e" integrity sha512-K/BG6eIky/SBpzfHZv/dd+9JBFiS4SWV7FIujVyJRux6e45+73RaUHXLmIR1f7WOMaQ0U1km6qwklRQxpJJY0w== @@ -12215,6 +12983,15 @@ resolve-pathname@^3.0.0: resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-3.0.0.tgz#99d02224d3cf263689becbb393bc560313025dcd" integrity sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng== +resolve@^1.1.6: + version "1.22.11" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.11.tgz#aad857ce1ffb8bfa9b0b1ac29f1156383f68c262" + integrity sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ== + dependencies: + is-core-module "^2.16.1" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + resolve@^1.19.0, resolve@^1.22.10: version "1.22.10" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" @@ -12352,6 +13129,24 @@ safe-regex-test@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +sass-loader@^16.0.5: + version "16.0.6" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-16.0.6.tgz#913b05607d06c386bc37870494e1e3a3e091fd3b" + integrity sha512-sglGzId5gmlfxNs4gK2U3h7HlVRfx278YK6Ono5lwzuvi1jxig80YiuHkaDBVsYIKFhx8wN7XSCI0M2IDS/3qA== + dependencies: + neo-async "^2.6.2" + +sass@^1.89.2: + version "1.97.3" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.97.3.tgz#9cb59339514fa7e2aec592b9700953ac6e331ab2" + integrity sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg== + dependencies: + chokidar "^4.0.0" + immutable "^5.0.2" + source-map-js ">=0.6.2 <2.0.0" + optionalDependencies: + "@parcel/watcher" "^2.4.1" + sax@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.1.tgz#44cc8988377f126304d3b3fc1010c733b929ef0f" @@ -12433,6 +13228,11 @@ semver-diff@^4.0.0: dependencies: semver "^7.3.5" +semver@7.7.1: + version "7.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.1.tgz#abd5098d82b18c6c81f6074ff2647fd3e7220c9f" + integrity sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA== + semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" @@ -12620,11 +13420,64 @@ shell-quote@^1.8.3: resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.8.3.tgz#55e40ef33cf5c689902353a3d8cd1a6725f08b4b" integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== +shelljs@0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + short-unique-id@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/short-unique-id/-/short-unique-id-5.3.2.tgz#6fea1b8fcaac44455abd1fa25840ebdb9c0a8ae7" integrity sha512-KRT/hufMSxXKEDSQujfVE0Faa/kZ51ihUcZQAcmP04t00DvPj7Ox5anHke1sJYUtzSuiT/Y5uyzg/W7bBEGhCg== +should-equal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/should-equal/-/should-equal-2.0.0.tgz#6072cf83047360867e68e98b09d71143d04ee0c3" + integrity sha512-ZP36TMrK9euEuWQYBig9W55WPC7uo37qzAEmbjHz4gfyuXrEUgF8cUvQVO+w+d3OMfPvSRQJ22lSm8MQJ43LTA== + dependencies: + should-type "^1.4.0" + +should-format@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/should-format/-/should-format-3.0.3.tgz#9bfc8f74fa39205c53d38c34d717303e277124f1" + integrity sha512-hZ58adtulAk0gKtua7QxevgUaXTTXxIi8t41L3zo9AHvjXO1/7sdLECuHeIN2SRtYXpNkmhoUP2pdeWgricQ+Q== + dependencies: + should-type "^1.3.0" + should-type-adaptors "^1.0.1" + +should-type-adaptors@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/should-type-adaptors/-/should-type-adaptors-1.1.0.tgz#401e7f33b5533033944d5cd8bf2b65027792e27a" + integrity sha512-JA4hdoLnN+kebEp2Vs8eBe9g7uy0zbRo+RMcU0EsNy+R+k049Ki+N5tT5Jagst2g7EAja+euFuoXFCa8vIklfA== + dependencies: + should-type "^1.3.0" + should-util "^1.0.0" + +should-type@^1.3.0, should-type@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/should-type/-/should-type-1.4.0.tgz#0756d8ce846dfd09843a6947719dfa0d4cff5cf3" + integrity sha512-MdAsTu3n25yDbIe1NeN69G4n6mUnJGtSJHygX3+oN0ZbO3DTiATnf7XnYJdGT42JCXurTb1JI0qOBR65shvhPQ== + +should-util@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/should-util/-/should-util-1.0.1.tgz#fb0d71338f532a3a149213639e2d32cbea8bcb28" + integrity sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g== + +should@^13.2.1: + version "13.2.3" + resolved "https://registry.yarnpkg.com/should/-/should-13.2.3.tgz#96d8e5acf3e97b49d89b51feaa5ae8d07ef58f10" + integrity sha512-ggLesLtu2xp+ZxI+ysJTmNjh2U0TsC+rQ/pfED9bUZZ4DKefP27D+7YJVVTvKsmjLpIi9jAa7itwDGkDDmt1GQ== + dependencies: + should-equal "^2.0.0" + should-format "^3.0.3" + should-type "^1.4.0" + should-type-adaptors "^1.0.1" + should-util "^1.0.0" + side-channel-list@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/side-channel-list/-/side-channel-list-1.0.0.tgz#10cb5984263115d3b7a0e336591e290a830af8ad" @@ -12711,6 +13564,11 @@ slash@^4.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-4.0.0.tgz#2422372176c4c6c5addb5e2ada885af984b396a7" integrity sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew== +slugify@^1.6.6: + version "1.6.6" + resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.6.tgz#2d4ac0eacb47add6af9e04d3be79319cbcc7924b" + integrity sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw== + snake-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" @@ -12733,7 +13591,7 @@ sort-css-media-queries@2.2.0: resolved "https://registry.yarnpkg.com/sort-css-media-queries/-/sort-css-media-queries-2.2.0.tgz#aa33cf4a08e0225059448b6c40eddbf9f1c8334c" integrity sha512-0xtkGhWCC9MGt/EzgnvbbbKhqWjl1+/rncmhTh5qCpbYguXh6S/qwePfv/JQ8jePXXmqingylxoC49pCkSPIbA== -source-map-js@^1.0.1, source-map-js@^1.2.1: +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== @@ -12844,7 +13702,7 @@ string-convert@^0.2.0: resolved "https://registry.yarnpkg.com/string-convert/-/string-convert-0.2.1.tgz#6982cc3049fbb4cd85f8b24568b9d9bf39eeff97" integrity sha512-u/1tdPl4yQnPBjnVrmdLo9gtuLvELKsAoRapekWggdiQNvvvum+jYF329d84NAa660KQw7pB2n36KrIKVoXa3A== -string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -13146,6 +14004,23 @@ swagger-ui-react@^5.31.0: xml-but-prettier "^1.0.1" zenscroll "^4.0.2" +swagger2openapi@7.0.8, swagger2openapi@^7.0.8: + version "7.0.8" + resolved "https://registry.yarnpkg.com/swagger2openapi/-/swagger2openapi-7.0.8.tgz#12c88d5de776cb1cbba758994930f40ad0afac59" + integrity sha512-upi/0ZGkYgEcLeGieoz8gT74oWHA0E7JivX7aN9mAf+Tc7BQoRBvnIGHoPDw+f9TXTW4s6kGYCZJtauP6OYp7g== + dependencies: + call-me-maybe "^1.0.1" + node-fetch "^2.6.1" + node-fetch-h2 "^2.3.0" + node-readfiles "^0.2.0" + oas-kit-common "^1.0.8" + oas-resolver "^2.5.6" + oas-schema-walker "^1.1.5" + oas-validator "^5.0.8" + reftools "^1.1.9" + yaml "^1.10.0" + yargs "^17.0.1" + swr@^2.2.5: version "2.3.6" resolved "https://registry.yarnpkg.com/swr/-/swr-2.3.6.tgz#5fee0ee8a0762a16871ee371075cb09422b64f50" @@ -13285,6 +14160,11 @@ totalist@^3.0.0: resolved "https://registry.yarnpkg.com/totalist/-/totalist-3.0.1.tgz#ba3a3d600c915b1a97872348f79c127475f6acf8" integrity sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ== +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + transformation-matrix@^2.16.1: version "2.16.1" resolved "https://registry.yarnpkg.com/transformation-matrix/-/transformation-matrix-2.16.1.tgz#4a2de06331b94ae953193d1b9a5ba002ec5f658a" @@ -13755,6 +14635,14 @@ url-parse@^1.5.10: querystringify "^2.1.1" requires-port "^1.0.0" +url@^0.11.4: + version "0.11.4" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.4.tgz#adca77b3562d56b72746e76b330b7f27b6721f3c" + integrity sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg== + dependencies: + punycode "^1.4.1" + qs "^6.12.3" + use-editable@^2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/use-editable/-/use-editable-2.3.3.tgz#a292fe9ba4c291cd28d1cc2728c75a5fc8d9a33f" @@ -13770,6 +14658,13 @@ util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== +util@^0.10.3: + version "0.10.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.4.tgz#3aa0125bfe668a4672de58857d3ace27ecb76901" + integrity sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A== + dependencies: + inherits "2.0.3" + util@^0.12.5: version "0.12.5" resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" @@ -13796,16 +14691,16 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== +uuid@8.3.2, uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + uuid@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/uuid/-/uuid-11.1.0.tgz#9549028be1753bb934fc96e2bca09bb4105ae912" integrity sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A== -uuid@^8.3.2: - version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" - integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== - uvu@^0.5.0: version "0.5.6" resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" @@ -13816,6 +14711,36 @@ uvu@^0.5.0: kleur "^4.0.3" sade "^1.7.3" +validate.io-array@^1.0.3: + version "1.0.6" + resolved "https://registry.yarnpkg.com/validate.io-array/-/validate.io-array-1.0.6.tgz#5b5a2cafd8f8b85abb2f886ba153f2d93a27774d" + integrity sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg== + +validate.io-function@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/validate.io-function/-/validate.io-function-1.0.2.tgz#343a19802ed3b1968269c780e558e93411c0bad7" + integrity sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ== + +validate.io-integer-array@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz#2cabde033293a6bcbe063feafe91eaf46b13a089" + integrity sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA== + dependencies: + validate.io-array "^1.0.3" + validate.io-integer "^1.0.4" + +validate.io-integer@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/validate.io-integer/-/validate.io-integer-1.0.5.tgz#168496480b95be2247ec443f2233de4f89878068" + integrity sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ== + dependencies: + validate.io-number "^1.0.3" + +validate.io-number@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/validate.io-number/-/validate.io-number-1.0.3.tgz#f63ffeda248bf28a67a8d48e0e3b461a1665baf8" + integrity sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg== + value-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/value-equal/-/value-equal-1.0.1.tgz#1e0b794c734c5c0cade179c437d356d931a34d6c" @@ -13903,6 +14828,13 @@ vscode-uri@~3.0.8: resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-3.0.8.tgz#1770938d3e72588659a172d0fd4642780083ff9f" integrity sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw== +warning@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + watchpack@^2.4.4: version "2.4.4" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.4.tgz#473bda72f0850453da6425081ea46fc0d7602947" @@ -13933,6 +14865,11 @@ web-tree-sitter@=0.24.5: resolved "https://registry.yarnpkg.com/web-tree-sitter/-/web-tree-sitter-0.24.5.tgz#16cea449da63012f23ca7b83bd32817dd0520400" integrity sha512-+J/2VSHN8J47gQUAvF8KDadrfz6uFYVjxoxbKWDoXVsH2u7yLdarCnIURnrMA6uSRkgX3SdmqM5BOoQjPdSh5w== +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + webpack-bundle-analyzer@^4.10.2: version "4.10.2" resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.10.2.tgz#633af2862c213730be3dbdf40456db171b60d5bd" @@ -14089,6 +15026,14 @@ whatwg-fetch@^3.6.20: resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.6.20.tgz#580ce6d791facec91d37c72890995a0b48d31c70" integrity sha512-EqhiFU6daOA8kpjOWTL0olhVOF3i7OrFzSYiGsEMB8GcXS+RrzauAERX65xMeNWVqxA6HXH2m69Z9LaKKdisfg== +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz#d76ec27df7fa165f18d5808374a5fe23c29b176e" @@ -14184,6 +15129,11 @@ wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: string-width "^5.0.1" strip-ansi "^7.0.1" +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + write-file-atomic@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" @@ -14223,6 +15173,13 @@ xml-but-prettier@^1.0.1: dependencies: repeat-string "^1.5.2" +xml-formatter@^3.6.6: + version "3.6.7" + resolved "https://registry.yarnpkg.com/xml-formatter/-/xml-formatter-3.6.7.tgz#75d140e6dbe19b3e956ef20ef55f421c52ef8cc0" + integrity sha512-IsfFYJQuoDqtUlKhm4EzeoBOb+fQwzQVeyxxAQ0sThn/nFnQmyLPTplqq4yRhaOENH/tAyujD2TBfIYzUKB6hg== + dependencies: + xml-parser-xo "^4.1.5" + xml-js@^1.6.11: version "1.6.11" resolved "https://registry.yarnpkg.com/xml-js/-/xml-js-1.6.11.tgz#927d2f6947f7f1c19a316dd8eea3614e8b18f8e9" @@ -14230,6 +15187,11 @@ xml-js@^1.6.11: dependencies: sax "^1.2.4" +xml-parser-xo@^4.1.5: + version "4.1.5" + resolved "https://registry.yarnpkg.com/xml-parser-xo/-/xml-parser-xo-4.1.5.tgz#c3326af56219a406f1e20741a2826655fcb3b607" + integrity sha512-TxyRxk9sTOUg3glxSIY6f0nfuqRll2OEF8TspLgh5mZkLuBgheCn3zClcDSGJ58TvNmiwyCCuat4UajPud/5Og== + xml@=1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/xml/-/xml-1.0.1.tgz#78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5" @@ -14243,16 +15205,44 @@ xss@^1.0.14: commander "^2.20.3" cssfilter "0.0.10" +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + yallist@^3.0.2: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yaml@^1.10.0: +yaml-ast-parser@0.0.43: + version "0.0.43" + resolved "https://registry.yarnpkg.com/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz#e8a23e6fb4c38076ab92995c5dca33f3d3d7c9bb" + integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== + +yaml@1.10.2, yaml@^1.10.0: version "1.10.2" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.0.1: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"