From 0f2ab3bd31f6bc4eccf4ef068f3ebd09640d1003 Mon Sep 17 00:00:00 2001 From: sga Date: Sun, 14 Jun 2026 23:36:35 +0300 Subject: [PATCH 1/2] add coversion scripts to exclusion for ruff --- Makefile | 6 + mddocs/_static/openapi.json | 9 - mddocs/changelog.md | 3 - mddocs/changelog/0.2.0.md | 69 -- mddocs/changelog/0.3.2.md | 5 - mddocs/{ => docs}/_static/architecture.png | Bin mddocs/docs/_static/autodoc_pydantic.css | 55 ++ mddocs/{ => docs}/_static/custom.css | 0 mddocs/docs/_static/icon.svg | 86 +++ .../docs/_static/javascripts/mermaid_zoom.js | 91 +++ mddocs/docs/_static/logo_wide.svg | 112 +++ mddocs/docs/_static/openapi.json | 1 + mddocs/{ => docs}/_static/redoc.html | 4 +- mddocs/{ => docs}/_static/swagger.html | 4 +- mddocs/{ => docs}/changelog/0.1.1.md | 0 mddocs/{ => docs}/changelog/0.1.2.md | 10 +- mddocs/{ => docs}/changelog/0.1.3.md | 0 mddocs/{ => docs}/changelog/0.1.4.md | 0 mddocs/{ => docs}/changelog/0.1.5.md | 10 +- mddocs/docs/changelog/0.2.0.md | 69 ++ mddocs/{ => docs}/changelog/0.2.1.md | 0 mddocs/{ => docs}/changelog/0.2.2.md | 4 +- mddocs/{ => docs}/changelog/0.2.3.md | 0 mddocs/{ => docs}/changelog/0.2.4.md | 0 mddocs/{ => docs}/changelog/0.2.5.md | 8 +- mddocs/{ => docs}/changelog/0.3.0.md | 18 +- mddocs/{ => docs}/changelog/0.3.1.md | 0 mddocs/docs/changelog/0.3.2.md | 5 + mddocs/{ => docs}/changelog/0.3.3.md | 2 +- mddocs/{ => docs}/changelog/0.3.4.md | 0 mddocs/{ => docs}/changelog/DRAFT.md | 0 mddocs/{ => docs}/changelog/NEXT_RELEASE.md | 0 mddocs/{ => docs}/changelog/index.md | 0 .../{ => docs}/changelog/next_release/.keep | 0 .../changelog/next_release/255.improvement.md | 0 mddocs/{ => docs}/contributing.md | 4 +- .../index.md => docs/design/entities.md} | 18 +- .../design/entities/connection_info_db.png | Bin .../design/entities/connection_info_fs.png | Bin .../design/entities/connection_list.png | Bin .../entities/create_transfer_advanced.png | Bin ...reate_transfer_advanced_filter_columns.png | Bin .../create_transfer_advanced_filter_files.png | Bin .../create_transfer_advanced_filter_rows.png | Bin .../entities/create_transfer_footer.png | Bin .../design/entities/create_transfer_head.png | Bin .../create_transfer_source_target.png | Bin .../design/entities/group_add_member.png | Bin .../{ => docs}/design/entities/group_info.png | Bin .../{ => docs}/design/entities/group_list.png | Bin .../{ => docs}/design/entities/queue_info.png | Bin .../{ => docs}/design/entities/queue_list.png | Bin .../{ => docs}/design/entities/run_info.png | Bin .../{ => docs}/design/entities/run_list.png | Bin .../design/entities/transfer_list.png | Bin mddocs/docs/design/index.md | 6 + mddocs/{ => docs}/design/permissions.md | 0 mddocs/{ => docs}/index.md | 6 +- mddocs/docs/nav.md | 67 ++ mddocs/{ => docs}/reference/architecture.md | 2 +- mddocs/{ => docs}/reference/broker/index.md | 6 +- .../reference/database/configuration.md | 0 .../database/credentials_encryption.md | 0 mddocs/{ => docs}/reference/database/index.md | 4 + .../reference/database/structure.md | 2 - .../reference/frontend/configuration.md | 0 mddocs/{ => docs}/reference/frontend/index.md | 6 +- mddocs/docs/reference/index.md | 11 + .../scheduler/configuration/broker.md | 0 .../scheduler/configuration/credentials.md | 0 .../scheduler/configuration/database.md | 0 .../scheduler/configuration/index.md | 0 .../scheduler/configuration/logging.md | 2 +- .../{ => docs}/reference/scheduler/index.md | 4 + .../reference/server/auth/custom.md | 0 mddocs/docs/reference/server/auth/dummy.md | 69 ++ .../{ => docs}/reference/server/auth/index.md | 0 .../images/keycloak-client-authentication.png | Bin .../images/keycloak-client-redirect_uri.png | Bin .../images/keycloak-client-secret.png | Bin .../auth/keycloak/images/keycloak-login.png | Bin .../keycloak/images/keycloak-new-client.png | Bin .../images/keycloak-new-client_name.png | Bin .../keycloak/images/keycloak-new-realm.png | Bin .../images/keycloak-new-realm_name.png | Bin .../auth/keycloak/images/ui-login-page.png | Bin 0 -> 30898 bytes .../reference/server/auth/keycloak/index.md | 28 +- .../auth/keycloak/local_installation.md | 124 +++ .../reference/server/configuration/broker.md | 0 .../reference/server/configuration/cors.md | 0 .../server/configuration/credentials.md | 0 .../server/configuration/database.md | 3 + .../reference/server/configuration/debug.md | 22 +- .../reference/server/configuration/index.md | 4 +- .../reference/server/configuration/logging.md | 2 +- .../server/configuration/monitoring.md | 0 .../reference/server/configuration/openapi.md | 0 .../server/configuration/static_files.md | 0 mddocs/{ => docs}/reference/server/index.md | 6 +- .../reference/server/manage_superusers_cli.md | 66 ++ mddocs/{ => docs}/reference/server/openapi.md | 2 +- .../reference/worker/configuration/broker.md | 0 .../worker/configuration/credentials.md | 0 .../worker/configuration/database.md | 3 + .../worker/configuration/hwm_store.md | 0 .../reference/worker/configuration/index.md | 2 +- .../reference/worker/configuration/logging.md | 2 +- .../reference/worker/create_spark_session.md | 2 +- mddocs/{ => docs}/reference/worker/index.md | 27 +- mddocs/{ => docs}/reference/worker/log_url.md | 0 mddocs/{ => docs}/robots.txt | 0 mddocs/{ => docs}/security.md | 0 mddocs/mkdocs.yml | 88 +++ mddocs/reference/server/auth/dummy.md | 69 -- .../auth/keycloak/local_installation.md | 92 --- .../server/configuration/database.md | 3 - .../reference/server/configuration/session.md | 5 - .../reference/server/manage_superusers_cli.md | 30 - .../worker/configuration/database.md | 3 - mddocs/scripts/fix_refs.py | 584 +++++++++++++++ mddocs/scripts/links2anchors.py | 225 ++++++ mddocs/scripts/rst2md.py | 709 ++++++++++++++++++ pyproject.toml | 12 +- syncmaster/exceptions/auth.py | 2 + syncmaster/scheduler/settings/__init__.py | 36 +- syncmaster/server/dependencies/stub.py | 6 +- .../server/providers/auth/base_provider.py | 73 +- syncmaster/server/settings/__init__.py | 37 +- syncmaster/server/settings/auth/__init__.py | 15 +- syncmaster/server/settings/auth/dummy.py | 13 +- syncmaster/server/settings/auth/jwt.py | 21 +- syncmaster/server/settings/auth/keycloak.py | 93 ++- .../server/settings/auth/oauth2_gateway.py | 21 +- syncmaster/server/settings/server/__init__.py | 39 +- syncmaster/server/settings/server/cors.py | 53 +- .../server/settings/server/monitoring.py | 51 +- syncmaster/server/settings/server/openapi.py | 117 ++- .../server/settings/server/request_id.py | 23 +- .../server/settings/server/static_files.py | 17 +- syncmaster/server/utils/slug.py | 4 +- syncmaster/settings/broker.py | 15 +- syncmaster/settings/credentials.py | 15 +- syncmaster/settings/database.py | 23 +- syncmaster/settings/logging.py | 340 ++++----- syncmaster/worker/handlers/db/clickhouse.py | 4 +- syncmaster/worker/settings/__init__.py | 54 +- syncmaster/worker/settings/hwm_store.py | 27 +- uv.lock | 312 ++++++++ 148 files changed, 3367 insertions(+), 935 deletions(-) delete mode 100644 mddocs/_static/openapi.json delete mode 100644 mddocs/changelog.md delete mode 100644 mddocs/changelog/0.2.0.md delete mode 100644 mddocs/changelog/0.3.2.md rename mddocs/{ => docs}/_static/architecture.png (100%) create mode 100644 mddocs/docs/_static/autodoc_pydantic.css rename mddocs/{ => docs}/_static/custom.css (100%) create mode 100644 mddocs/docs/_static/icon.svg create mode 100644 mddocs/docs/_static/javascripts/mermaid_zoom.js create mode 100644 mddocs/docs/_static/logo_wide.svg create mode 100644 mddocs/docs/_static/openapi.json rename mddocs/{ => docs}/_static/redoc.html (83%) rename mddocs/{ => docs}/_static/swagger.html (85%) rename mddocs/{ => docs}/changelog/0.1.1.md (100%) rename mddocs/{ => docs}/changelog/0.1.2.md (57%) rename mddocs/{ => docs}/changelog/0.1.3.md (100%) rename mddocs/{ => docs}/changelog/0.1.4.md (100%) rename mddocs/{ => docs}/changelog/0.1.5.md (61%) create mode 100644 mddocs/docs/changelog/0.2.0.md rename mddocs/{ => docs}/changelog/0.2.1.md (100%) rename mddocs/{ => docs}/changelog/0.2.2.md (80%) rename mddocs/{ => docs}/changelog/0.2.3.md (100%) rename mddocs/{ => docs}/changelog/0.2.4.md (100%) rename mddocs/{ => docs}/changelog/0.2.5.md (71%) rename mddocs/{ => docs}/changelog/0.3.0.md (75%) rename mddocs/{ => docs}/changelog/0.3.1.md (100%) create mode 100644 mddocs/docs/changelog/0.3.2.md rename mddocs/{ => docs}/changelog/0.3.3.md (72%) rename mddocs/{ => docs}/changelog/0.3.4.md (100%) rename mddocs/{ => docs}/changelog/DRAFT.md (100%) rename mddocs/{ => docs}/changelog/NEXT_RELEASE.md (100%) rename mddocs/{ => docs}/changelog/index.md (100%) rename mddocs/{ => docs}/changelog/next_release/.keep (100%) rename mddocs/{ => docs}/changelog/next_release/255.improvement.md (100%) rename mddocs/{ => docs}/contributing.md (98%) rename mddocs/{design/entities/index.md => docs/design/entities.md} (82%) rename mddocs/{ => docs}/design/entities/connection_info_db.png (100%) rename mddocs/{ => docs}/design/entities/connection_info_fs.png (100%) rename mddocs/{ => docs}/design/entities/connection_list.png (100%) rename mddocs/{ => docs}/design/entities/create_transfer_advanced.png (100%) rename mddocs/{ => docs}/design/entities/create_transfer_advanced_filter_columns.png (100%) rename mddocs/{ => docs}/design/entities/create_transfer_advanced_filter_files.png (100%) rename mddocs/{ => docs}/design/entities/create_transfer_advanced_filter_rows.png (100%) rename mddocs/{ => docs}/design/entities/create_transfer_footer.png (100%) rename mddocs/{ => docs}/design/entities/create_transfer_head.png (100%) rename mddocs/{ => docs}/design/entities/create_transfer_source_target.png (100%) rename mddocs/{ => docs}/design/entities/group_add_member.png (100%) rename mddocs/{ => docs}/design/entities/group_info.png (100%) rename mddocs/{ => docs}/design/entities/group_list.png (100%) rename mddocs/{ => docs}/design/entities/queue_info.png (100%) rename mddocs/{ => docs}/design/entities/queue_list.png (100%) rename mddocs/{ => docs}/design/entities/run_info.png (100%) rename mddocs/{ => docs}/design/entities/run_list.png (100%) rename mddocs/{ => docs}/design/entities/transfer_list.png (100%) create mode 100644 mddocs/docs/design/index.md rename mddocs/{ => docs}/design/permissions.md (100%) rename mddocs/{ => docs}/index.md (59%) create mode 100644 mddocs/docs/nav.md rename mddocs/{ => docs}/reference/architecture.md (93%) rename mddocs/{ => docs}/reference/broker/index.md (87%) rename mddocs/{ => docs}/reference/database/configuration.md (100%) rename mddocs/{ => docs}/reference/database/credentials_encryption.md (100%) rename mddocs/{ => docs}/reference/database/index.md (99%) rename mddocs/{ => docs}/reference/database/structure.md (98%) rename mddocs/{ => docs}/reference/frontend/configuration.md (100%) rename mddocs/{ => docs}/reference/frontend/index.md (84%) create mode 100644 mddocs/docs/reference/index.md rename mddocs/{ => docs}/reference/scheduler/configuration/broker.md (100%) rename mddocs/{ => docs}/reference/scheduler/configuration/credentials.md (100%) rename mddocs/{ => docs}/reference/scheduler/configuration/database.md (100%) rename mddocs/{ => docs}/reference/scheduler/configuration/index.md (100%) rename mddocs/{ => docs}/reference/scheduler/configuration/logging.md (54%) rename mddocs/{ => docs}/reference/scheduler/index.md (98%) rename mddocs/{ => docs}/reference/server/auth/custom.md (100%) create mode 100644 mddocs/docs/reference/server/auth/dummy.md rename mddocs/{ => docs}/reference/server/auth/index.md (100%) rename mddocs/{ => docs}/reference/server/auth/keycloak/images/keycloak-client-authentication.png (100%) rename mddocs/{ => docs}/reference/server/auth/keycloak/images/keycloak-client-redirect_uri.png (100%) rename mddocs/{ => docs}/reference/server/auth/keycloak/images/keycloak-client-secret.png (100%) rename mddocs/{ => docs}/reference/server/auth/keycloak/images/keycloak-login.png (100%) rename mddocs/{ => docs}/reference/server/auth/keycloak/images/keycloak-new-client.png (100%) rename mddocs/{ => docs}/reference/server/auth/keycloak/images/keycloak-new-client_name.png (100%) rename mddocs/{ => docs}/reference/server/auth/keycloak/images/keycloak-new-realm.png (100%) rename mddocs/{ => docs}/reference/server/auth/keycloak/images/keycloak-new-realm_name.png (100%) create mode 100644 mddocs/docs/reference/server/auth/keycloak/images/ui-login-page.png rename mddocs/{ => docs}/reference/server/auth/keycloak/index.md (70%) create mode 100644 mddocs/docs/reference/server/auth/keycloak/local_installation.md rename mddocs/{ => docs}/reference/server/configuration/broker.md (100%) rename mddocs/{ => docs}/reference/server/configuration/cors.md (100%) rename mddocs/{ => docs}/reference/server/configuration/credentials.md (100%) create mode 100644 mddocs/docs/reference/server/configuration/database.md rename mddocs/{ => docs}/reference/server/configuration/debug.md (87%) rename mddocs/{ => docs}/reference/server/configuration/index.md (76%) rename mddocs/{ => docs}/reference/server/configuration/logging.md (52%) rename mddocs/{ => docs}/reference/server/configuration/monitoring.md (100%) rename mddocs/{ => docs}/reference/server/configuration/openapi.md (100%) rename mddocs/{ => docs}/reference/server/configuration/static_files.md (100%) rename mddocs/{ => docs}/reference/server/index.md (95%) create mode 100644 mddocs/docs/reference/server/manage_superusers_cli.md rename mddocs/{ => docs}/reference/server/openapi.md (64%) rename mddocs/{ => docs}/reference/worker/configuration/broker.md (100%) rename mddocs/{ => docs}/reference/worker/configuration/credentials.md (100%) create mode 100644 mddocs/docs/reference/worker/configuration/database.md rename mddocs/{ => docs}/reference/worker/configuration/hwm_store.md (100%) rename mddocs/{ => docs}/reference/worker/configuration/index.md (86%) rename mddocs/{ => docs}/reference/worker/configuration/logging.md (52%) rename mddocs/{ => docs}/reference/worker/create_spark_session.md (97%) rename mddocs/{ => docs}/reference/worker/index.md (69%) rename mddocs/{ => docs}/reference/worker/log_url.md (100%) rename mddocs/{ => docs}/robots.txt (100%) rename mddocs/{ => docs}/security.md (100%) create mode 100644 mddocs/mkdocs.yml delete mode 100644 mddocs/reference/server/auth/dummy.md delete mode 100644 mddocs/reference/server/auth/keycloak/local_installation.md delete mode 100644 mddocs/reference/server/configuration/database.md delete mode 100644 mddocs/reference/server/configuration/session.md delete mode 100644 mddocs/reference/server/manage_superusers_cli.md delete mode 100644 mddocs/reference/worker/configuration/database.md create mode 100644 mddocs/scripts/fix_refs.py create mode 100644 mddocs/scripts/links2anchors.py create mode 100644 mddocs/scripts/rst2md.py diff --git a/Makefile b/Makefile index e851dd23..f32a2a39 100644 --- a/Makefile +++ b/Makefile @@ -187,3 +187,9 @@ docs-fresh: docs-cleanup docs-build ##@Docs Cleanup & build docs docs-openapi: ##@Docs Generate OpenAPI schema ${PYTHON} -m syncmaster.server.scripts.export_openapi_schema docs/_static/openapi.json + +mddocs-build: mddocs-openapi ##@Docs Generate mkdocs documentation + PYTHONPATH=. DISABLE_MKDOCS_2_WARNING=true ${VIRTUAL_ENV}/bin/mkdocs build --strict --config-file mddocs/mkdocs.yml + +mddocs-openapi: ##@Docs Generate OpenAPI schema for mkdocs documentation + ${PYTHON} -m syncmaster.server.scripts.export_openapi_schema mddocs/docs/_static/openapi.json diff --git a/mddocs/_static/openapi.json b/mddocs/_static/openapi.json deleted file mode 100644 index 7b3bf552..00000000 --- a/mddocs/_static/openapi.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "openapi": "3.1.0", - "version": "unknown", - "info": { - "title": "Generated in CI", - "version": "unknown" - }, - "paths": {} -} \ No newline at end of file diff --git a/mddocs/changelog.md b/mddocs/changelog.md deleted file mode 100644 index f303949c..00000000 --- a/mddocs/changelog.md +++ /dev/null @@ -1,3 +0,0 @@ -# Changelog { #changelog } - -!include(../../changelog/index.md) diff --git a/mddocs/changelog/0.2.0.md b/mddocs/changelog/0.2.0.md deleted file mode 100644 index 74f50472..00000000 --- a/mddocs/changelog/0.2.0.md +++ /dev/null @@ -1,69 +0,0 @@ -# 0.2.0 (2025-04-04) { #0.2.0 } - -## TL;DR - -- Completely new UI. -- Add support for FileSystem connections. -- Add support for simple transformations within transfer - filter files, filter rows, change columns. -- Add support for incremental read strategy. -- Add support for running transfers by schedule. -- Add support for changing SparkSession resource limits. - -Huge thanks to [Dmitry Pedchenko](https://github.com/dmitry-pedchenko), [Maxim Lixakov](https://github.com/maxim-lixakov), [Ilyas Gasanov](https://github.com/IlyasDevelopment), [Kirill Chernikov](https://github.com/Zabilsya). - -## Breaking Changes - -- Implement a single error handling format to improve consistency [#95](https://github.com/MobileTeleSystems/syncmaster/issues/95) -- Change response format for `GET /v1/groups` - add **current user role** for each group [#97](https://github.com/MobileTeleSystems/syncmaster/issues/97) -- Change response format for `GET /v1/groups/:id` - add **current user role** for group [#109](https://github.com/MobileTeleSystems/syncmaster/issues/109) -- Now migrations are executed in a dedicated one-off container, instead of being run as a part of `backend` container. [#163](https://github.com/MobileTeleSystems/syncmaster/issues/163) -- Delete **transfers**, **queues** and **groups** records instead of marking them as deleted [#168](https://github.com/MobileTeleSystems/syncmaster/issues/168) -- Move the `type` field from nested `connection_data` field to the root level of the `Connection` response. [#169](https://github.com/MobileTeleSystems/syncmaster/issues/169) -- Decouple `auth_data.type` from the connection type (e.g. `postgres`) and link it to the authentication type (e.g. `basic`). [#169](https://github.com/MobileTeleSystems/syncmaster/issues/169) -- Add deletion of **connections** records instead of marking them as deleted [#170](https://github.com/MobileTeleSystems/syncmaster/issues/170) -- Use PUT instead of PATCH for `Connection` and `Transfer` models [#215](https://github.com/MobileTeleSystems/syncmaster/issues/215) -- Return new connection and transfer object in `POST /v1/transfer/copy` and `POST /v1/connection/copy` endpoints. -- Change response status from 200 to 204 for all `DELETE` endpoints. - -## Features - -- Add hive to known types ([#67](https://github.com/MobileTeleSystems/syncmaster/issues/67)) -- Allow search for **groups**, **users**, **connections**, **transfers**, **queues** ([#92](https://github.com/MobileTeleSystems/syncmaster/issues/92), [#94](https://github.com/MobileTeleSystems/syncmaster/issues/94), [#99](https://github.com/MobileTeleSystems/syncmaster/issues/99), [#100](https://github.com/MobileTeleSystems/syncmaster/issues/100), [#101](https://github.com/MobileTeleSystems/syncmaster/issues/101), [#103](https://github.com/MobileTeleSystems/syncmaster/issues/103)) -- Add filters for **connections**, **transfers** and **runs** ([#94](https://github.com/MobileTeleSystems/syncmaster/issues/94), [#102](https://github.com/MobileTeleSystems/syncmaster/issues/102), [#106](https://github.com/MobileTeleSystems/syncmaster/issues/106)) -- Implement a scheduler to run celery tasks on a schedule. This can be done by setting `Transfer.is_scheduled=True` and `Transfer.schedule="..."` (cron-like expression). - The Run model now has a `type` field with options `MANUAL` and `SCHEDULED`. ([#114](https://github.com/MobileTeleSystems/syncmaster/issues/114)) -- Add GET `v1/monitoring/metrics` endpoint to provide basic HTTP server metrics in Prometheus format ([#121](https://github.com/MobileTeleSystems/syncmaster/issues/121)) -- Implemented `KeycloakAuthProvider` for Single Sign-On (SSO) authentication.([#123](https://github.com/MobileTeleSystems/syncmaster/issues/123)) -- Implemented `DummyAuthProvider` for development and testing environments. ([#123](https://github.com/MobileTeleSystems/syncmaster/issues/123)) -- Add API schemas for new DB sources - Clickhouse, MSSQL, MySQL ([#124](https://github.com/MobileTeleSystems/syncmaster/issues/124), [#125](https://github.com/MobileTeleSystems/syncmaster/issues/125), [#126](https://github.com/MobileTeleSystems/syncmaster/issues/126), [#160](https://github.com/MobileTeleSystems/syncmaster/issues/160)) -- Add logic for handling FTP, FTPS, SFTP, Samba, WebDAV transfers ([#189](https://github.com/MobileTeleSystems/syncmaster/issues/189), [#191](https://github.com/MobileTeleSystems/syncmaster/issues/191), [#192](https://github.com/MobileTeleSystems/syncmaster/issues/192), [#194](https://github.com/MobileTeleSystems/syncmaster/issues/194)) -- Add API schemas for file sources - SFTP, FTP, FTPS, WebDAV, Samba ([#187](https://github.com/MobileTeleSystems/syncmaster/issues/187)) -- Add API schemas for file formats - Excel, XML, ORC, Parquet ([#140](https://github.com/MobileTeleSystems/syncmaster/issues/140), [#142](https://github.com/MobileTeleSystems/syncmaster/issues/142), [#143](https://github.com/MobileTeleSystems/syncmaster/issues/143), [#144](https://github.com/MobileTeleSystems/syncmaster/issues/144)) -- Add compression options to file formats CSV, JSON, JSONLine, Excel, ORC, Parquet, XML ([#159](https://github.com/MobileTeleSystems/syncmaster/issues/159), [#161](https://github.com/MobileTeleSystems/syncmaster/issues/161)) -- Add transformations for **Transfers** with dataframe row filtering ([#184](https://github.com/MobileTeleSystems/syncmaster/issues/184)) -- Add transformations for **Transfers** with dataframe column filtering ([#186](https://github.com/MobileTeleSystems/syncmaster/issues/186)) -- Add transformations for **Transfers** with file filtering ([#198](https://github.com/MobileTeleSystems/syncmaster/issues/198)) -- Add `increment_by` field to `strategy_params` ([#202](https://github.com/MobileTeleSystems/syncmaster/issues/202)) -- Implement increment strategy for transfers with file sources ([#209](https://github.com/MobileTeleSystems/syncmaster/issues/209)) -- Implement increment strategy for transfers with database sources ([#211](https://github.com/MobileTeleSystems/syncmaster/issues/211)) -- Add `resources` field to `Transfer`. ([#214](https://github.com/MobileTeleSystems/syncmaster/issues/214)) -- Add `file_name_template` field to `target_params` ([#196](https://github.com/MobileTeleSystems/syncmaster/issues/196), [#201](https://github.com/MobileTeleSystems/syncmaster/issues/201)) - -## Improvements - -- Updated `User` model to include `email`, `first_name`, `middle_name`, and `last_name` fields, all optional. ([#123](https://github.com/MobileTeleSystems/syncmaster/issues/123)) -- Read env variable `SYNCMASTER__ENTRYPOINT__SUPERUSERS` to promote users to `SUPERUSER` role during server startup. ([#137](https://github.com/MobileTeleSystems/syncmaster/issues/137)) -- Enabled dynamic selection of authentication provider via environment variable `SYNCMASTER__AUTH__PROVIDER`. ([#123](https://github.com/MobileTeleSystems/syncmaster/issues/123)) -- Enable parallel reading from JDBC sources. ([#219](https://github.com/MobileTeleSystems/syncmaster/issues/219)) -- Reset HWM when changing strategy from `incremental` to `full`. ([#217](https://github.com/MobileTeleSystems/syncmaster/issues/217)) -- Grant read-only permissions for the previous group owner when ownership is transferred ([#135](https://github.com/MobileTeleSystems/syncmaster/issues/135)) - -## Bug Fixes - -- Use Hadoop AWS `magic` committer only if transfer *target* is S3. ([#46](https://github.com/MobileTeleSystems/syncmaster/issues/46)) -- Check that `service_name` and `sid` are mutually exclusive when editing Oracle connection. ([#52](https://github.com/MobileTeleSystems/syncmaster/issues/52)) -- Queue name is unique within a group, new field `slug` is globally-unique. ([#54](https://github.com/MobileTeleSystems/syncmaster/issues/54), [#119](https://github.com/MobileTeleSystems/syncmaster/issues/119)) -- Prohibit updating connection type it if there is a transfer associated with this connection. ([#55](https://github.com/MobileTeleSystems/syncmaster/issues/55)) -- Fix error when `is_scheduled` field value was ignored. ([#57](https://github.com/MobileTeleSystems/syncmaster/issues/57)) -- Group without any users assigned was missing in groups list. ([#62](https://github.com/MobileTeleSystems/syncmaster/issues/62)) -- Dump connection credentials while starting a transfer. ([#63](https://github.com/MobileTeleSystems/syncmaster/issues/63)) diff --git a/mddocs/changelog/0.3.2.md b/mddocs/changelog/0.3.2.md deleted file mode 100644 index e3f4841c..00000000 --- a/mddocs/changelog/0.3.2.md +++ /dev/null @@ -1,5 +0,0 @@ -# 0.3.2 (2026-03-05) { #0.3.2 } - -## Features - -Implement SQL transformations for transfer ([#327](https://github.com/MobileTeleSystems/syncmaster/issues/327), [#330](https://github.com/MobileTeleSystems/syncmaster/issues/255)) diff --git a/mddocs/_static/architecture.png b/mddocs/docs/_static/architecture.png similarity index 100% rename from mddocs/_static/architecture.png rename to mddocs/docs/_static/architecture.png diff --git a/mddocs/docs/_static/autodoc_pydantic.css b/mddocs/docs/_static/autodoc_pydantic.css new file mode 100644 index 00000000..c4e63ba6 --- /dev/null +++ b/mddocs/docs/_static/autodoc_pydantic.css @@ -0,0 +1,55 @@ +.mermaid { + cursor: zoom-in; + } + +.mermaid-zoom-overlay { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background: rgba(0, 0, 0, 0.85); + overflow: auto; + z-index: 9999; + padding: 48px 2vw 2vh; + box-sizing: border-box; + } + +.mermaid-zoom-toolbar { + position: fixed; + top: 0; + left: 0; + width: 100vw; + z-index: 10000; + display: flex; + gap: 8px; + padding: 8px 12px; + background: rgba(0, 0, 0, 0.7); + box-sizing: border-box; + } + +.mermaid-zoom-toolbar button { + background: rgba(255, 255, 255, 0.15); + color: white; + border: 1px solid rgba(255, 255, 255, 0.4); + border-radius: 4px; + padding: 4px 12px; + font-size: 16px; + cursor: pointer; + line-height: 1; + } + +.mermaid-zoom-toolbar button:hover { + background: rgba(255, 255, 255, 0.3); + } + +.mermaid-zoom-toolbar .mermaid-zoom-close { + margin-left: auto; + } + +.mermaid-zoom-overlay svg { + display: block; + background: white; + height: auto; + cursor: default; + } diff --git a/mddocs/_static/custom.css b/mddocs/docs/_static/custom.css similarity index 100% rename from mddocs/_static/custom.css rename to mddocs/docs/_static/custom.css diff --git a/mddocs/docs/_static/icon.svg b/mddocs/docs/_static/icon.svg new file mode 100644 index 00000000..c3b69244 --- /dev/null +++ b/mddocs/docs/_static/icon.svg @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + diff --git a/mddocs/docs/_static/javascripts/mermaid_zoom.js b/mddocs/docs/_static/javascripts/mermaid_zoom.js new file mode 100644 index 00000000..d37888a9 --- /dev/null +++ b/mddocs/docs/_static/javascripts/mermaid_zoom.js @@ -0,0 +1,91 @@ +(function () { + var shadowRoots = new WeakMap(); + var _attachShadow = Element.prototype.attachShadow; + Element.prototype.attachShadow = function (init) { + var shadow = _attachShadow.call(this, init); + shadowRoots.set(this, shadow); + return shadow; + }; + + var ZOOM_STEPS = [100, 150, 200, 300]; + + document.addEventListener("click", function (e) { + if (e.target.closest(".mermaid-zoom-overlay") || e.target.closest(".mermaid-zoom-toolbar")) return; + + var path = e.composedPath(); + var container = null; + for (var i = 0; i < path.length; i++) { + var el = path[i]; + if (el.classList && el.classList.contains("mermaid")) { + container = el; + break; + } + } + if (!container) return; + + var root = container.shadowRoot || shadowRoots.get(container); + if (!root) return; + var svg = root.querySelector("svg"); + if (!svg) return; + + var currentStep = 1; // start at 150% + + var overlay = document.createElement("div"); + overlay.className = "mermaid-zoom-overlay"; + + var toolbar = document.createElement("div"); + toolbar.className = "mermaid-zoom-toolbar"; + + var btnMinus = document.createElement("button"); + btnMinus.textContent = "−"; + var btnPlus = document.createElement("button"); + btnPlus.textContent = "+"; + var btnClose = document.createElement("button"); + btnClose.textContent = "✕"; + btnClose.className = "mermaid-zoom-close"; + + toolbar.appendChild(btnMinus); + toolbar.appendChild(btnPlus); + toolbar.appendChild(btnClose); + + var clone = svg.cloneNode(true); + clone.removeAttribute("width"); + clone.removeAttribute("height"); + clone.style.width = ZOOM_STEPS[currentStep] + "%"; + + overlay.appendChild(clone); + document.body.appendChild(toolbar); + document.body.appendChild(overlay); + + function updateZoom() { + clone.style.width = ZOOM_STEPS[currentStep] + "%"; + btnMinus.disabled = currentStep === 0; + btnPlus.disabled = currentStep === ZOOM_STEPS.length - 1; + } + + btnMinus.addEventListener("click", function (e) { + e.stopPropagation(); + if (currentStep > 0) { currentStep--; updateZoom(); } + }); + btnPlus.addEventListener("click", function (e) { + e.stopPropagation(); + if (currentStep < ZOOM_STEPS.length - 1) { currentStep++; updateZoom(); } + }); + btnClose.addEventListener("click", function (e) { + e.stopPropagation(); + close(); + }); + + overlay.addEventListener("click", close); + + function close() { + overlay.remove(); + toolbar.remove(); + document.removeEventListener("keydown", onKey); + } + function onKey(e) { if (e.key === "Escape") close(); } + document.addEventListener("keydown", onKey); + + updateZoom(); + }); +})(); diff --git a/mddocs/docs/_static/logo_wide.svg b/mddocs/docs/_static/logo_wide.svg new file mode 100644 index 00000000..0b8c8e0c --- /dev/null +++ b/mddocs/docs/_static/logo_wide.svg @@ -0,0 +1,112 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/mddocs/docs/_static/openapi.json b/mddocs/docs/_static/openapi.json new file mode 100644 index 00000000..0c0a279c --- /dev/null +++ b/mddocs/docs/_static/openapi.json @@ -0,0 +1 @@ +{"openapi": "3.1.0", "info": {"title": "SyncMaster", "version": "0.3.5", "x-logo": {"url": "/static/logo.svg", "altText": "Syncmaster logo", "backgroundColor": "#ffffff", "href": "https://github.com/MTSWebServices/syncmaster"}}, "paths": {"/monitoring/ping": {"get": {"tags": ["Monitoring"], "summary": "Ping", "operationId": "ping_monitoring_ping_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/PingResponse"}}}}}}}, "/v1/users": {"get": {"tags": ["Users"], "summary": "Get Users", "operationId": "get_users_v1_users_get", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "page", "in": "query", "required": false, "schema": {"type": "integer", "exclusiveMinimum": 0, "default": 1, "title": "Page"}}, {"name": "page_size", "in": "query", "required": false, "schema": {"type": "integer", "maximum": 50, "exclusiveMinimum": 0, "default": 20, "title": "Page Size"}}, {"name": "search_query", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Search Query", "description": "fuzzy search for users"}, "description": "fuzzy search for users"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserPageSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/users/me": {"get": {"tags": ["Users"], "summary": "Read Current User", "operationId": "read_current_user_v1_users_me_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadUserSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}, "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}]}}, "/v1/users/{user_id}": {"get": {"tags": ["Users"], "summary": "Read User", "operationId": "read_user_v1_users__user_id__get", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "user_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "User Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadUserSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/auth/token": {"post": {"tags": ["Auth"], "summary": "Token", "operationId": "token_v1_auth_token_post", "requestBody": {"content": {"application/x-www-form-urlencoded": {"schema": {"$ref": "#/components/schemas/Body_token_v1_auth_token_post"}}}, "required": true}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AuthTokenSchema"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/auth/callback": {"get": {"tags": ["Auth"], "summary": "Auth Callback", "operationId": "auth_callback_v1_auth_callback_get", "parameters": [{"name": "code", "in": "query", "required": true, "schema": {"type": "string", "title": "Code"}}], "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/auth/logout": {"get": {"tags": ["Auth"], "summary": "Logout user", "operationId": "logout_v1_auth_logout_get", "responses": {"204": {"description": "Successful Response"}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}, "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}]}}, "/v1/groups": {"get": {"tags": ["Groups"], "summary": "Read Groups", "operationId": "read_groups_v1_groups_get", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "page", "in": "query", "required": false, "schema": {"type": "integer", "exclusiveMinimum": 0, "default": 1, "title": "Page"}}, {"name": "page_size", "in": "query", "required": false, "schema": {"type": "integer", "maximum": 50, "exclusiveMinimum": 0, "default": 20, "title": "Page Size"}}, {"name": "role", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Role"}}, {"name": "search_query", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Search Query", "description": "full-text search for groups"}, "description": "full-text search for groups"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GroupPageSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "post": {"tags": ["Groups"], "summary": "Create Group", "operationId": "create_group_v1_groups_post", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateGroupSchema"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadGroupSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/groups/{group_id}": {"get": {"tags": ["Groups"], "summary": "Read Group", "operationId": "read_group_v1_groups__group_id__get", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "group_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Group Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GroupWithUserRoleSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "put": {"tags": ["Groups"], "summary": "Update Group", "operationId": "update_group_v1_groups__group_id__put", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "group_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Group Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateGroupSchema"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadGroupSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "delete": {"tags": ["Groups"], "summary": "Delete Group", "operationId": "delete_group_v1_groups__group_id__delete", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "group_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Group Id"}}], "responses": {"204": {"description": "Successful Response"}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/groups/{group_id}/users": {"get": {"tags": ["Groups"], "summary": "Read Group Users", "operationId": "read_group_users_v1_groups__group_id__users_get", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "group_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Group Id"}}, {"name": "page", "in": "query", "required": false, "schema": {"type": "integer", "exclusiveMinimum": 0, "default": 1, "title": "Page"}}, {"name": "page_size", "in": "query", "required": false, "schema": {"type": "integer", "maximum": 50, "exclusiveMinimum": 0, "default": 20, "title": "Page Size"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UserPageSchemaAsGroupMember"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/groups/{group_id}/users/{user_id}": {"put": {"tags": ["Groups"], "summary": "Update User Role Group", "operationId": "update_user_role_group_v1_groups__group_id__users__user_id__put", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "group_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Group Id"}}, {"name": "user_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "User Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AddUserSchema"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AddUserSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "post": {"tags": ["Groups"], "summary": "Add User To Group", "operationId": "add_user_to_group_v1_groups__group_id__users__user_id__post", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "group_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Group Id"}}, {"name": "user_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "User Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/AddUserSchema"}}}}, "responses": {"204": {"description": "Successful Response"}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "delete": {"tags": ["Groups"], "summary": "Delete User From Group", "operationId": "delete_user_from_group_v1_groups__group_id__users__user_id__delete", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "group_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Group Id"}}, {"name": "user_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "User Id"}}], "responses": {"204": {"description": "Successful Response"}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/connections": {"get": {"tags": ["Connections"], "summary": "Read Connections", "description": "Return connections in page format", "operationId": "read_connections_v1_connections_get", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "group_id", "in": "query", "required": true, "schema": {"type": "integer", "title": "Group Id"}}, {"name": "page", "in": "query", "required": false, "schema": {"type": "integer", "exclusiveMinimum": 0, "default": 1, "title": "Page"}}, {"name": "page_size", "in": "query", "required": false, "schema": {"type": "integer", "maximum": 50, "exclusiveMinimum": 0, "default": 20, "title": "Page Size"}}, {"name": "type", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/ConnectionType"}}, {"type": "null"}], "title": "Type"}}, {"name": "search_query", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Search Query", "description": "full-text search for connections"}, "description": "full-text search for connections"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ConnectionPageSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "post": {"tags": ["Connections"], "summary": "Create Connection", "description": "Create new connection", "operationId": "create_connection_v1_connections_post", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"oneOf": [{"$ref": "#/components/schemas/CreateClickhouseConnectionSchema"}, {"$ref": "#/components/schemas/CreateHiveConnectionSchema"}, {"$ref": "#/components/schemas/CreateIcebergConnectionSchema"}, {"$ref": "#/components/schemas/CreateMSSQLConnectionSchema"}, {"$ref": "#/components/schemas/CreateMySQLConnectionSchema"}, {"$ref": "#/components/schemas/CreateOracleConnectionSchema"}, {"$ref": "#/components/schemas/CreatePostgresConnectionSchema"}, {"$ref": "#/components/schemas/CreateFTPConnectionSchema"}, {"$ref": "#/components/schemas/CreateFTPSConnectionSchema"}, {"$ref": "#/components/schemas/CreateHDFSConnectionSchema"}, {"$ref": "#/components/schemas/CreateS3ConnectionSchema"}, {"$ref": "#/components/schemas/CreateSambaConnectionSchema"}, {"$ref": "#/components/schemas/CreateSFTPConnectionSchema"}, {"$ref": "#/components/schemas/CreateWebDAVConnectionSchema"}], "discriminator": {"propertyName": "type", "mapping": {"clickhouse": "#/components/schemas/CreateClickhouseConnectionSchema", "hive": "#/components/schemas/CreateHiveConnectionSchema", "iceberg": "#/components/schemas/CreateIcebergConnectionSchema", "mssql": "#/components/schemas/CreateMSSQLConnectionSchema", "mysql": "#/components/schemas/CreateMySQLConnectionSchema", "oracle": "#/components/schemas/CreateOracleConnectionSchema", "postgres": "#/components/schemas/CreatePostgresConnectionSchema", "ftp": "#/components/schemas/CreateFTPConnectionSchema", "ftps": "#/components/schemas/CreateFTPSConnectionSchema", "hdfs": "#/components/schemas/CreateHDFSConnectionSchema", "s3": "#/components/schemas/CreateS3ConnectionSchema", "samba": "#/components/schemas/CreateSambaConnectionSchema", "sftp": "#/components/schemas/CreateSFTPConnectionSchema", "webdav": "#/components/schemas/CreateWebDAVConnectionSchema"}}, "title": "Connection Data"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"oneOf": [{"$ref": "#/components/schemas/ReadClickhouseConnectionSchema"}, {"$ref": "#/components/schemas/ReadHiveConnectionSchema"}, {"$ref": "#/components/schemas/ReadIcebergConnectionSchema"}, {"$ref": "#/components/schemas/ReadMSSQLConnectionSchema"}, {"$ref": "#/components/schemas/ReadMySQLConnectionSchema"}, {"$ref": "#/components/schemas/ReadOracleConnectionSchema"}, {"$ref": "#/components/schemas/ReadPostgresConnectionSchema"}, {"$ref": "#/components/schemas/ReadFTPConnectionSchema"}, {"$ref": "#/components/schemas/ReadFTPSConnectionSchema"}, {"$ref": "#/components/schemas/ReadHDFSConnectionSchema"}, {"$ref": "#/components/schemas/ReadS3ConnectionSchema"}, {"$ref": "#/components/schemas/ReadSambaConnectionSchema"}, {"$ref": "#/components/schemas/ReadSFTPConnectionSchema"}, {"$ref": "#/components/schemas/ReadWebDAVConnectionSchema"}], "discriminator": {"propertyName": "type", "mapping": {"clickhouse": "#/components/schemas/ReadClickhouseConnectionSchema", "hive": "#/components/schemas/ReadHiveConnectionSchema", "iceberg": "#/components/schemas/ReadIcebergConnectionSchema", "mssql": "#/components/schemas/ReadMSSQLConnectionSchema", "mysql": "#/components/schemas/ReadMySQLConnectionSchema", "oracle": "#/components/schemas/ReadOracleConnectionSchema", "postgres": "#/components/schemas/ReadPostgresConnectionSchema", "ftp": "#/components/schemas/ReadFTPConnectionSchema", "ftps": "#/components/schemas/ReadFTPSConnectionSchema", "hdfs": "#/components/schemas/ReadHDFSConnectionSchema", "s3": "#/components/schemas/ReadS3ConnectionSchema", "samba": "#/components/schemas/ReadSambaConnectionSchema", "sftp": "#/components/schemas/ReadSFTPConnectionSchema", "webdav": "#/components/schemas/ReadWebDAVConnectionSchema"}}, "title": "Response Create Connection V1 Connections Post"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/connections/known_types": {"get": {"tags": ["Connections"], "summary": "Read Connection Types", "operationId": "read_connection_types_v1_connections_known_types_get", "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"items": {"type": "string"}, "type": "array", "title": "Response Read Connection Types V1 Connections Known Types Get"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}, "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}]}}, "/v1/connections/{connection_id}": {"get": {"tags": ["Connections"], "summary": "Read Connection", "operationId": "read_connection_v1_connections__connection_id__get", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "connection_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Connection Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"oneOf": [{"$ref": "#/components/schemas/ReadClickhouseConnectionSchema"}, {"$ref": "#/components/schemas/ReadHiveConnectionSchema"}, {"$ref": "#/components/schemas/ReadIcebergConnectionSchema"}, {"$ref": "#/components/schemas/ReadMSSQLConnectionSchema"}, {"$ref": "#/components/schemas/ReadMySQLConnectionSchema"}, {"$ref": "#/components/schemas/ReadOracleConnectionSchema"}, {"$ref": "#/components/schemas/ReadPostgresConnectionSchema"}, {"$ref": "#/components/schemas/ReadFTPConnectionSchema"}, {"$ref": "#/components/schemas/ReadFTPSConnectionSchema"}, {"$ref": "#/components/schemas/ReadHDFSConnectionSchema"}, {"$ref": "#/components/schemas/ReadS3ConnectionSchema"}, {"$ref": "#/components/schemas/ReadSambaConnectionSchema"}, {"$ref": "#/components/schemas/ReadSFTPConnectionSchema"}, {"$ref": "#/components/schemas/ReadWebDAVConnectionSchema"}], "discriminator": {"propertyName": "type", "mapping": {"clickhouse": "#/components/schemas/ReadClickhouseConnectionSchema", "hive": "#/components/schemas/ReadHiveConnectionSchema", "iceberg": "#/components/schemas/ReadIcebergConnectionSchema", "mssql": "#/components/schemas/ReadMSSQLConnectionSchema", "mysql": "#/components/schemas/ReadMySQLConnectionSchema", "oracle": "#/components/schemas/ReadOracleConnectionSchema", "postgres": "#/components/schemas/ReadPostgresConnectionSchema", "ftp": "#/components/schemas/ReadFTPConnectionSchema", "ftps": "#/components/schemas/ReadFTPSConnectionSchema", "hdfs": "#/components/schemas/ReadHDFSConnectionSchema", "s3": "#/components/schemas/ReadS3ConnectionSchema", "samba": "#/components/schemas/ReadSambaConnectionSchema", "sftp": "#/components/schemas/ReadSFTPConnectionSchema", "webdav": "#/components/schemas/ReadWebDAVConnectionSchema"}}, "title": "Response Read Connection V1 Connections Connection Id Get"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "put": {"tags": ["Connections"], "summary": "Update Connection", "operationId": "update_connection_v1_connections__connection_id__put", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "connection_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Connection Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"oneOf": [{"$ref": "#/components/schemas/UpdateClickhouseConnectionSchema"}, {"$ref": "#/components/schemas/UpdateHiveConnectionSchema"}, {"$ref": "#/components/schemas/UpdateIcebergConnectionSchema"}, {"$ref": "#/components/schemas/UpdateMSSQLConnectionSchema"}, {"$ref": "#/components/schemas/UpdateMySQLConnectionSchema"}, {"$ref": "#/components/schemas/UpdateOracleConnectionSchema"}, {"$ref": "#/components/schemas/UpdatePostgresConnectionSchema"}, {"$ref": "#/components/schemas/UpdateFTPConnectionSchema"}, {"$ref": "#/components/schemas/UpdateFTPSConnectionSchema"}, {"$ref": "#/components/schemas/UpdateHDFSConnectionSchema"}, {"$ref": "#/components/schemas/UpdateS3ConnectionSchema"}, {"$ref": "#/components/schemas/UpdateSambaConnectionSchema"}, {"$ref": "#/components/schemas/UpdateSFTPConnectionSchema"}, {"$ref": "#/components/schemas/UpdateWebDAVConnectionSchema"}], "discriminator": {"propertyName": "type", "mapping": {"clickhouse": "#/components/schemas/UpdateClickhouseConnectionSchema", "hive": "#/components/schemas/UpdateHiveConnectionSchema", "iceberg": "#/components/schemas/UpdateIcebergConnectionSchema", "mssql": "#/components/schemas/UpdateMSSQLConnectionSchema", "mysql": "#/components/schemas/UpdateMySQLConnectionSchema", "oracle": "#/components/schemas/UpdateOracleConnectionSchema", "postgres": "#/components/schemas/UpdatePostgresConnectionSchema", "ftp": "#/components/schemas/UpdateFTPConnectionSchema", "ftps": "#/components/schemas/UpdateFTPSConnectionSchema", "hdfs": "#/components/schemas/UpdateHDFSConnectionSchema", "s3": "#/components/schemas/UpdateS3ConnectionSchema", "samba": "#/components/schemas/UpdateSambaConnectionSchema", "sftp": "#/components/schemas/UpdateSFTPConnectionSchema", "webdav": "#/components/schemas/UpdateWebDAVConnectionSchema"}}, "title": "Connection Data"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"oneOf": [{"$ref": "#/components/schemas/ReadClickhouseConnectionSchema"}, {"$ref": "#/components/schemas/ReadHiveConnectionSchema"}, {"$ref": "#/components/schemas/ReadIcebergConnectionSchema"}, {"$ref": "#/components/schemas/ReadMSSQLConnectionSchema"}, {"$ref": "#/components/schemas/ReadMySQLConnectionSchema"}, {"$ref": "#/components/schemas/ReadOracleConnectionSchema"}, {"$ref": "#/components/schemas/ReadPostgresConnectionSchema"}, {"$ref": "#/components/schemas/ReadFTPConnectionSchema"}, {"$ref": "#/components/schemas/ReadFTPSConnectionSchema"}, {"$ref": "#/components/schemas/ReadHDFSConnectionSchema"}, {"$ref": "#/components/schemas/ReadS3ConnectionSchema"}, {"$ref": "#/components/schemas/ReadSambaConnectionSchema"}, {"$ref": "#/components/schemas/ReadSFTPConnectionSchema"}, {"$ref": "#/components/schemas/ReadWebDAVConnectionSchema"}], "discriminator": {"propertyName": "type", "mapping": {"clickhouse": "#/components/schemas/ReadClickhouseConnectionSchema", "hive": "#/components/schemas/ReadHiveConnectionSchema", "iceberg": "#/components/schemas/ReadIcebergConnectionSchema", "mssql": "#/components/schemas/ReadMSSQLConnectionSchema", "mysql": "#/components/schemas/ReadMySQLConnectionSchema", "oracle": "#/components/schemas/ReadOracleConnectionSchema", "postgres": "#/components/schemas/ReadPostgresConnectionSchema", "ftp": "#/components/schemas/ReadFTPConnectionSchema", "ftps": "#/components/schemas/ReadFTPSConnectionSchema", "hdfs": "#/components/schemas/ReadHDFSConnectionSchema", "s3": "#/components/schemas/ReadS3ConnectionSchema", "samba": "#/components/schemas/ReadSambaConnectionSchema", "sftp": "#/components/schemas/ReadSFTPConnectionSchema", "webdav": "#/components/schemas/ReadWebDAVConnectionSchema"}}, "title": "Response Update Connection V1 Connections Connection Id Put"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "delete": {"tags": ["Connections"], "summary": "Delete Connection", "operationId": "delete_connection_v1_connections__connection_id__delete", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "connection_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Connection Id"}}], "responses": {"204": {"description": "Successful Response"}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/connections/{connection_id}/copy_connection": {"post": {"tags": ["Connections"], "summary": "Copy Connection", "operationId": "copy_connection_v1_connections__connection_id__copy_connection_post", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "connection_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Connection Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ConnectionCopySchema"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"oneOf": [{"$ref": "#/components/schemas/ReadClickhouseConnectionSchema"}, {"$ref": "#/components/schemas/ReadHiveConnectionSchema"}, {"$ref": "#/components/schemas/ReadIcebergConnectionSchema"}, {"$ref": "#/components/schemas/ReadMSSQLConnectionSchema"}, {"$ref": "#/components/schemas/ReadMySQLConnectionSchema"}, {"$ref": "#/components/schemas/ReadOracleConnectionSchema"}, {"$ref": "#/components/schemas/ReadPostgresConnectionSchema"}, {"$ref": "#/components/schemas/ReadFTPConnectionSchema"}, {"$ref": "#/components/schemas/ReadFTPSConnectionSchema"}, {"$ref": "#/components/schemas/ReadHDFSConnectionSchema"}, {"$ref": "#/components/schemas/ReadS3ConnectionSchema"}, {"$ref": "#/components/schemas/ReadSambaConnectionSchema"}, {"$ref": "#/components/schemas/ReadSFTPConnectionSchema"}, {"$ref": "#/components/schemas/ReadWebDAVConnectionSchema"}], "discriminator": {"propertyName": "type", "mapping": {"clickhouse": "#/components/schemas/ReadClickhouseConnectionSchema", "hive": "#/components/schemas/ReadHiveConnectionSchema", "iceberg": "#/components/schemas/ReadIcebergConnectionSchema", "mssql": "#/components/schemas/ReadMSSQLConnectionSchema", "mysql": "#/components/schemas/ReadMySQLConnectionSchema", "oracle": "#/components/schemas/ReadOracleConnectionSchema", "postgres": "#/components/schemas/ReadPostgresConnectionSchema", "ftp": "#/components/schemas/ReadFTPConnectionSchema", "ftps": "#/components/schemas/ReadFTPSConnectionSchema", "hdfs": "#/components/schemas/ReadHDFSConnectionSchema", "s3": "#/components/schemas/ReadS3ConnectionSchema", "samba": "#/components/schemas/ReadSambaConnectionSchema", "sftp": "#/components/schemas/ReadSFTPConnectionSchema", "webdav": "#/components/schemas/ReadWebDAVConnectionSchema"}}, "title": "Response Copy Connection V1 Connections Connection Id Copy Connection Post"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/transfers": {"get": {"tags": ["Transfers"], "summary": "Read Transfers", "description": "Return transfers in page format", "operationId": "read_transfers_v1_transfers_get", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "group_id", "in": "query", "required": true, "schema": {"type": "integer", "title": "Group Id"}}, {"name": "page", "in": "query", "required": false, "schema": {"type": "integer", "exclusiveMinimum": 0, "default": 1, "title": "Page"}}, {"name": "page_size", "in": "query", "required": false, "schema": {"type": "integer", "maximum": 50, "exclusiveMinimum": 0, "default": 20, "title": "Page Size"}}, {"name": "search_query", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Search Query", "description": "full-text search for transfers"}, "description": "full-text search for transfers"}, {"name": "source_connection_id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Source Connection Id"}}, {"name": "target_connection_id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Target Connection Id"}}, {"name": "queue_id", "in": "query", "required": false, "schema": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Queue Id"}}, {"name": "source_connection_type", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/ConnectionType"}}, {"type": "null"}], "title": "Source Connection Type"}}, {"name": "target_connection_type", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/ConnectionType"}}, {"type": "null"}], "title": "Target Connection Type"}}, {"name": "is_scheduled", "in": "query", "required": false, "schema": {"anyOf": [{"type": "boolean"}, {"type": "null"}], "title": "Is Scheduled"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/TransferPageSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "post": {"tags": ["Transfers"], "summary": "Create Transfer", "operationId": "create_transfer_v1_transfers_post", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateTransferSchema"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadTransferSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/transfers/{transfer_id}": {"get": {"tags": ["Transfers"], "summary": "Read Transfer", "description": "Return transfer data by transfer ID", "operationId": "read_transfer_v1_transfers__transfer_id__get", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "transfer_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Transfer Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadTransferSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "put": {"tags": ["Transfers"], "summary": "Update Transfer", "operationId": "update_transfer_v1_transfers__transfer_id__put", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "transfer_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Transfer Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateTransferSchema"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadTransferSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "delete": {"tags": ["Transfers"], "summary": "Delete Transfer", "operationId": "delete_transfer_v1_transfers__transfer_id__delete", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "transfer_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Transfer Id"}}], "responses": {"204": {"description": "Successful Response"}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/transfers/{transfer_id}/copy_transfer": {"post": {"tags": ["Transfers"], "summary": "Copy Transfer", "operationId": "copy_transfer_v1_transfers__transfer_id__copy_transfer_post", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "transfer_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Transfer Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CopyTransferSchema"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadTransferSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/queues": {"get": {"tags": ["Queues"], "summary": "Read Queues", "description": "Queues in page format", "operationId": "read_queues_v1_queues_get", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "group_id", "in": "query", "required": true, "schema": {"type": "integer", "title": "Group Id"}}, {"name": "page", "in": "query", "required": false, "schema": {"type": "integer", "exclusiveMinimum": 0, "default": 1, "title": "Page"}}, {"name": "page_size", "in": "query", "required": false, "schema": {"type": "integer", "maximum": 50, "exclusiveMinimum": 0, "default": 20, "title": "Page Size"}}, {"name": "search_query", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Search Query", "description": "full-text search for queues"}, "description": "full-text search for queues"}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/QueuePageSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "post": {"tags": ["Queues"], "summary": "Create Queue", "description": "Create new queue", "operationId": "create_queue_v1_queues_post", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateQueueSchema"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadQueueSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/queues/{queue_id}": {"get": {"tags": ["Queues"], "summary": "Read Queue", "description": "Read queue by id", "operationId": "read_queue_v1_queues__queue_id__get", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "queue_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Queue Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadQueueSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "put": {"tags": ["Queues"], "summary": "Update Queue", "description": "Updating queue information", "operationId": "update_queue_v1_queues__queue_id__put", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "queue_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Queue Id"}}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/UpdateQueueSchema"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadQueueSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "delete": {"tags": ["Queues"], "summary": "Delete Queue", "description": "Delete queue by id", "operationId": "delete_queue_v1_queues__queue_id__delete", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "queue_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Queue Id"}}], "responses": {"204": {"description": "Successful Response"}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/runs": {"get": {"tags": ["Runs"], "summary": "Read Runs", "description": "Return runs of transfer with pagination", "operationId": "read_runs_v1_runs_get", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "transfer_id", "in": "query", "required": true, "schema": {"type": "integer", "title": "Transfer Id"}}, {"name": "page", "in": "query", "required": false, "schema": {"type": "integer", "exclusiveMinimum": 0, "default": 1, "title": "Page"}}, {"name": "page_size", "in": "query", "required": false, "schema": {"type": "integer", "maximum": 50, "exclusiveMinimum": 0, "default": 20, "title": "Page Size"}}, {"name": "status", "in": "query", "required": false, "schema": {"anyOf": [{"type": "array", "items": {"$ref": "#/components/schemas/Status"}}, {"type": "null"}], "title": "Status"}}, {"name": "started_at_since", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Started At Since"}}, {"name": "started_at_until", "in": "query", "required": false, "schema": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Started At Until"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/RunPageSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}, "post": {"tags": ["Runs"], "summary": "Start Run", "operationId": "start_run_v1_runs_post", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "requestBody": {"required": true, "content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateRunSchema"}}}}, "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadRunSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/runs/{run_id}": {"get": {"tags": ["Runs"], "summary": "Read Run", "operationId": "read_run_v1_runs__run_id__get", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "run_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Run Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadRunSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/v1/runs/{run_id}/stop": {"post": {"tags": ["Runs"], "summary": "Stop Run", "operationId": "stop_run_v1_runs__run_id__stop_post", "security": [{"OAuth2PasswordBearer": []}, {"HTTPBearer": []}], "parameters": [{"name": "run_id", "in": "path", "required": true, "schema": {"type": "integer", "title": "Run Id"}}], "responses": {"200": {"description": "Successful Response", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/ReadRunSchema"}}}}, "400": {"description": "Bad Request", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_BadRequestSchema_"}}}}, "422": {"description": "Unprocessable Entity", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_InvalidRequestSchema_"}}}}, "401": {"description": "Unauthorized", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/APIErrorSchema_NotAuthorizedSchema_"}}}}}}}, "/monitoring/metrics": {"get": {"tags": ["Monitoring"], "summary": "Get server metrics", "description": "Return server metrics in Prometheus format, using Starlette Exporter", "operationId": "handle_metrics_monitoring_metrics_get", "responses": {"200": {"description": "Successful Response", "content": {"text/plain": {"schema": {"type": "string"}}}}}}}}, "components": {"schemas": {"APIErrorSchema_BadRequestSchema_": {"properties": {"error": {"$ref": "#/components/schemas/BadRequestSchema"}}, "type": "object", "required": ["error"], "title": "APIErrorSchema[BadRequestSchema]"}, "APIErrorSchema_InvalidRequestSchema_": {"properties": {"error": {"$ref": "#/components/schemas/InvalidRequestSchema"}}, "type": "object", "required": ["error"], "title": "APIErrorSchema[InvalidRequestSchema]"}, "APIErrorSchema_NotAuthorizedSchema_": {"properties": {"error": {"$ref": "#/components/schemas/NotAuthorizedSchema"}}, "type": "object", "required": ["error"], "title": "APIErrorSchema[NotAuthorizedSchema]"}, "AddUserSchema": {"properties": {"role": {"$ref": "#/components/schemas/GroupMemberRole"}}, "type": "object", "required": ["role"], "title": "AddUserSchema"}, "AuthTokenSchema": {"properties": {"access_token": {"type": "string", "title": "Access Token"}, "token_type": {"type": "string", "title": "Token Type"}, "expires_at": {"type": "number", "title": "Expires At"}}, "type": "object", "required": ["access_token", "token_type", "expires_at"], "title": "AuthTokenSchema"}, "BadRequestSchema": {"properties": {"code": {"type": "string", "title": "Code", "default": "bad_request"}, "message": {"type": "string", "title": "Message", "default": "Bad request"}, "details": {"type": "null", "title": "Details"}}, "type": "object", "title": "BadRequestSchema"}, "Body_token_v1_auth_token_post": {"properties": {"grant_type": {"anyOf": [{"type": "string", "pattern": "^password$"}, {"type": "null"}], "title": "Grant Type"}, "username": {"type": "string", "title": "Username"}, "password": {"type": "string", "format": "password", "title": "Password"}, "scope": {"type": "string", "title": "Scope", "default": ""}, "client_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Client Id"}, "client_secret": {"anyOf": [{"type": "string"}, {"type": "null"}], "format": "password", "title": "Client Secret"}}, "type": "object", "required": ["username", "password"], "title": "Body_token_v1_auth_token_post"}, "CSV": {"properties": {"type": {"type": "string", "const": "csv", "title": "Type", "default": "csv"}, "delimiter": {"type": "string", "title": "Delimiter", "default": ","}, "encoding": {"type": "string", "title": "Encoding", "default": "utf-8"}, "quote": {"type": "string", "title": "Quote", "default": "\""}, "escape": {"type": "string", "title": "Escape", "default": "\\"}, "include_header": {"type": "boolean", "title": "Include Header", "default": false}, "line_sep": {"type": "string", "title": "Line Sep", "default": "\n"}, "compression": {"$ref": "#/components/schemas/CSVCompression", "default": "gzip"}}, "type": "object", "title": "CSV"}, "CSVCompression": {"type": "string", "enum": ["none", "bzip2", "gzip", "lz4", "snappy", "deflate"], "title": "CSVCompression"}, "CastFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "cast", "title": "Type", "default": "cast"}, "as_type": {"type": "string", "title": "As Type", "examples": ["int"]}}, "type": "object", "required": ["field", "as_type"], "title": "CastFilter"}, "ClickhouseConnectionDataSchema": {"properties": {"host": {"type": "string", "title": "Host"}, "port": {"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0, "title": "Port", "default": 8123}, "database_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Database Name"}, "additional_params": {"additionalProperties": true, "type": "object", "title": "Additional Params"}}, "type": "object", "required": ["host"], "title": "ClickhouseConnectionDataSchema"}, "ClickhouseTransferSourceOrTarget": {"properties": {"table_name": {"type": "string", "pattern": "^[\\w\\d]+\\.[\\w\\d]+$", "title": "Table Name", "description": "Table name", "examples": ["myschema.mytable"]}, "type": {"type": "string", "const": "clickhouse", "title": "Type"}}, "type": "object", "required": ["table_name", "type"], "title": "ClickhouseTransferSourceOrTarget"}, "ConnectionCopySchema": {"properties": {"new_group_id": {"type": "integer", "title": "New Group Id", "description": "New group id"}, "new_name": {"anyOf": [{"type": "string", "maxLength": 128, "minLength": 3}, {"type": "null"}], "title": "New Name", "description": "New name"}, "remove_source": {"type": "boolean", "title": "Remove Source", "description": "Set `true` to move connection instead of copying", "default": false}}, "type": "object", "required": ["new_group_id"], "title": "ConnectionCopySchema"}, "ConnectionPageSchema": {"properties": {"meta": {"$ref": "#/components/schemas/MetaPageSchema"}, "items": {"items": {"oneOf": [{"$ref": "#/components/schemas/ReadClickhouseConnectionSchema"}, {"$ref": "#/components/schemas/ReadHiveConnectionSchema"}, {"$ref": "#/components/schemas/ReadIcebergConnectionSchema"}, {"$ref": "#/components/schemas/ReadMSSQLConnectionSchema"}, {"$ref": "#/components/schemas/ReadMySQLConnectionSchema"}, {"$ref": "#/components/schemas/ReadOracleConnectionSchema"}, {"$ref": "#/components/schemas/ReadPostgresConnectionSchema"}, {"$ref": "#/components/schemas/ReadFTPConnectionSchema"}, {"$ref": "#/components/schemas/ReadFTPSConnectionSchema"}, {"$ref": "#/components/schemas/ReadHDFSConnectionSchema"}, {"$ref": "#/components/schemas/ReadS3ConnectionSchema"}, {"$ref": "#/components/schemas/ReadSambaConnectionSchema"}, {"$ref": "#/components/schemas/ReadSFTPConnectionSchema"}, {"$ref": "#/components/schemas/ReadWebDAVConnectionSchema"}], "discriminator": {"propertyName": "type", "mapping": {"clickhouse": "#/components/schemas/ReadClickhouseConnectionSchema", "ftp": "#/components/schemas/ReadFTPConnectionSchema", "ftps": "#/components/schemas/ReadFTPSConnectionSchema", "hdfs": "#/components/schemas/ReadHDFSConnectionSchema", "hive": "#/components/schemas/ReadHiveConnectionSchema", "iceberg": "#/components/schemas/ReadIcebergConnectionSchema", "mssql": "#/components/schemas/ReadMSSQLConnectionSchema", "mysql": "#/components/schemas/ReadMySQLConnectionSchema", "oracle": "#/components/schemas/ReadOracleConnectionSchema", "postgres": "#/components/schemas/ReadPostgresConnectionSchema", "s3": "#/components/schemas/ReadS3ConnectionSchema", "samba": "#/components/schemas/ReadSambaConnectionSchema", "sftp": "#/components/schemas/ReadSFTPConnectionSchema", "webdav": "#/components/schemas/ReadWebDAVConnectionSchema"}}}, "type": "array", "title": "Items"}}, "type": "object", "required": ["meta", "items"], "title": "ConnectionPageSchema"}, "ConnectionType": {"type": "string", "enum": ["postgres", "hive", "iceberg", "oracle", "clickhouse", "mssql", "mysql", "s3", "hdfs", "sftp", "ftp", "ftps", "webdav", "samba"], "title": "ConnectionType"}, "CopyTransferSchema": {"properties": {"new_group_id": {"type": "integer", "title": "New Group Id", "description": "New group id"}, "new_queue_id": {"type": "integer", "title": "New Queue Id", "description": "New queue id"}, "new_source_connection_name": {"anyOf": [{"type": "string", "maxLength": 128, "minLength": 3}, {"type": "null"}], "title": "New Source Connection Name", "description": "New source connection name"}, "new_target_connection_name": {"anyOf": [{"type": "string", "maxLength": 128, "minLength": 3}, {"type": "null"}], "title": "New Target Connection Name", "description": "New target connection name"}, "new_name": {"anyOf": [{"type": "string", "maxLength": 128, "minLength": 3}, {"type": "null"}], "title": "New Name", "description": "New name"}, "remove_source": {"type": "boolean", "title": "Remove Source", "description": "Set `true` to move transfer instead of copying", "default": false}}, "type": "object", "required": ["new_group_id", "new_queue_id"], "title": "CopyTransferSchema"}, "CreateBasicAuthSchema": {"properties": {"type": {"type": "string", "const": "basic", "title": "Type", "description": "Auth type", "default": "basic"}, "user": {"type": "string", "title": "User"}, "password": {"type": "string", "format": "password", "title": "Password", "writeOnly": true}}, "type": "object", "required": ["user", "password"], "title": "CreateBasicAuthSchema"}, "CreateClickhouseConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "clickhouse", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/ClickhouseConnectionDataSchema", "description": "Data required to connect to the database"}, "auth_data": {"$ref": "#/components/schemas/CreateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreateClickhouseConnectionSchema"}, "CreateFTPConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "ftp", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/FTPConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"$ref": "#/components/schemas/CreateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreateFTPConnectionSchema"}, "CreateFTPSConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "ftps", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/FTPSConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"$ref": "#/components/schemas/CreateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreateFTPSConnectionSchema"}, "CreateGroupSchema": {"properties": {"name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name"}, "description": {"type": "string", "title": "Description"}}, "type": "object", "required": ["name", "description"], "title": "CreateGroupSchema"}, "CreateHDFSConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "hdfs", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/HDFSConnectionDataSchema", "description": "Data required to connect to the HDFS cluster"}, "auth_data": {"$ref": "#/components/schemas/CreateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreateHDFSConnectionSchema"}, "CreateHiveConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "hive", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/HiveConnectionDataSchema", "description": "Data required to connect to the database"}, "auth_data": {"$ref": "#/components/schemas/CreateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreateHiveConnectionSchema"}, "CreateIcebergConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "iceberg", "title": "Type", "description": "Connection type"}, "connection_data": {"oneOf": [{"$ref": "#/components/schemas/IcebergRESTCatalogS3DirectConnectionDataSchema"}, {"$ref": "#/components/schemas/IcebergRESTCatalogS3DelegatedConnectionDataSchema"}], "title": "Connection Data", "description": "Data required to connect to REST catalog and to object storage", "discriminator": {"propertyName": "type", "mapping": {"iceberg_rest_s3_delegated": "#/components/schemas/IcebergRESTCatalogS3DelegatedConnectionDataSchema", "iceberg_rest_s3_direct": "#/components/schemas/IcebergRESTCatalogS3DirectConnectionDataSchema"}}}, "auth_data": {"oneOf": [{"$ref": "#/components/schemas/CreateIcebergRESTCatalogBearerS3BasicAuthSchema"}, {"$ref": "#/components/schemas/CreateIcebergRESTCatalogOAuth2ClientCredentialsS3BasicAuthSchema"}, {"$ref": "#/components/schemas/CreateIcebergRESTCatalogBearerAuthSchema"}, {"$ref": "#/components/schemas/CreateIcebergRESTCatalogOAuth2ClientCredentialsAuthSchema"}], "title": "Auth Data", "description": "Credentials for REST Catalog and object storage", "discriminator": {"propertyName": "type", "mapping": {"iceberg_rest_bearer": "#/components/schemas/CreateIcebergRESTCatalogBearerAuthSchema", "iceberg_rest_bearer_s3_basic": "#/components/schemas/CreateIcebergRESTCatalogBearerS3BasicAuthSchema", "iceberg_rest_oauth2_client_credentials": "#/components/schemas/CreateIcebergRESTCatalogOAuth2ClientCredentialsAuthSchema", "iceberg_rest_oauth2_client_credentials_s3_basic": "#/components/schemas/CreateIcebergRESTCatalogOAuth2ClientCredentialsS3BasicAuthSchema"}}}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreateIcebergConnectionSchema"}, "CreateIcebergRESTCatalogBearerAuthSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_bearer", "title": "Type", "description": "Auth type", "default": "iceberg_rest_bearer"}, "rest_catalog_token": {"type": "string", "format": "password", "title": "Rest Catalog Token", "writeOnly": true}}, "type": "object", "required": ["rest_catalog_token"], "title": "CreateIcebergRESTCatalogBearerAuthSchema"}, "CreateIcebergRESTCatalogBearerS3BasicAuthSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_bearer_s3_basic", "title": "Type", "description": "Auth type", "default": "iceberg_rest_bearer_s3_basic"}, "s3_access_key": {"type": "string", "title": "S3 Access Key"}, "rest_catalog_token": {"type": "string", "format": "password", "title": "Rest Catalog Token", "writeOnly": true}, "s3_secret_key": {"type": "string", "format": "password", "title": "S3 Secret Key", "writeOnly": true}}, "type": "object", "required": ["s3_access_key", "rest_catalog_token", "s3_secret_key"], "title": "CreateIcebergRESTCatalogBearerS3BasicAuthSchema"}, "CreateIcebergRESTCatalogOAuth2ClientCredentialsAuthSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_oauth2_client_credentials", "title": "Type", "description": "Auth type", "default": "iceberg_rest_oauth2_client_credentials"}, "rest_catalog_oauth2_client_id": {"type": "string", "title": "Rest Catalog Oauth2 Client Id"}, "rest_catalog_oauth2_scopes": {"items": {"type": "string"}, "type": "array", "title": "Rest Catalog Oauth2 Scopes"}, "rest_catalog_oauth2_resource": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Resource"}, "rest_catalog_oauth2_audience": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Audience"}, "rest_catalog_oauth2_token_endpoint": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Token Endpoint"}, "rest_catalog_oauth2_client_secret": {"type": "string", "format": "password", "title": "Rest Catalog Oauth2 Client Secret", "writeOnly": true}}, "type": "object", "required": ["rest_catalog_oauth2_client_id", "rest_catalog_oauth2_client_secret"], "title": "CreateIcebergRESTCatalogOAuth2ClientCredentialsAuthSchema"}, "CreateIcebergRESTCatalogOAuth2ClientCredentialsS3BasicAuthSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_oauth2_client_credentials_s3_basic", "title": "Type", "description": "Auth type", "default": "iceberg_rest_oauth2_client_credentials_s3_basic"}, "rest_catalog_oauth2_client_id": {"type": "string", "title": "Rest Catalog Oauth2 Client Id"}, "rest_catalog_oauth2_scopes": {"items": {"type": "string"}, "type": "array", "title": "Rest Catalog Oauth2 Scopes"}, "rest_catalog_oauth2_resource": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Resource"}, "rest_catalog_oauth2_audience": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Audience"}, "rest_catalog_oauth2_token_endpoint": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Token Endpoint"}, "s3_access_key": {"type": "string", "title": "S3 Access Key"}, "rest_catalog_oauth2_client_secret": {"type": "string", "format": "password", "title": "Rest Catalog Oauth2 Client Secret", "writeOnly": true}, "s3_secret_key": {"type": "string", "format": "password", "title": "S3 Secret Key", "writeOnly": true}}, "type": "object", "required": ["rest_catalog_oauth2_client_id", "s3_access_key", "rest_catalog_oauth2_client_secret", "s3_secret_key"], "title": "CreateIcebergRESTCatalogOAuth2ClientCredentialsS3BasicAuthSchema"}, "CreateMSSQLConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "mssql", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/MSSQLConnectionDataSchema", "description": "Data required to connect to the database"}, "auth_data": {"$ref": "#/components/schemas/CreateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreateMSSQLConnectionSchema"}, "CreateMySQLConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "mysql", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/MySQLConnectionDataSchema", "description": "Data required to connect to the database"}, "auth_data": {"$ref": "#/components/schemas/CreateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreateMySQLConnectionSchema"}, "CreateOracleConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "oracle", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/OracleConnectionDataSchema", "description": "Data required to connect to the database"}, "auth_data": {"$ref": "#/components/schemas/CreateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreateOracleConnectionSchema"}, "CreatePostgresConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "postgres", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/PostgresConnectionDataSchema", "description": "Data required to connect to the database"}, "auth_data": {"$ref": "#/components/schemas/CreateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreatePostgresConnectionSchema"}, "CreateQueueSchema": {"properties": {"name": {"type": "string", "maxLength": 128, "minLength": 3, "pattern": "^[ -~]+$", "title": "Name", "description": "Queue name. Can contain allows letters, numbers, dashes, and underscores"}, "group_id": {"type": "integer", "title": "Group Id", "description": "Group id the queue is bound to"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description", "default": ""}}, "type": "object", "required": ["name", "group_id"], "title": "CreateQueueSchema"}, "CreateRunSchema": {"properties": {"transfer_id": {"type": "integer", "title": "Transfer Id", "description": "Transfer id"}}, "type": "object", "required": ["transfer_id"], "title": "CreateRunSchema"}, "CreateS3AuthSchema": {"properties": {"type": {"type": "string", "const": "s3", "title": "Type", "description": "Auth type", "default": "s3"}, "access_key": {"type": "string", "title": "Access Key"}, "secret_key": {"type": "string", "format": "password", "title": "Secret Key", "writeOnly": true}}, "type": "object", "required": ["access_key", "secret_key"], "title": "CreateS3AuthSchema"}, "CreateS3ConnectionDataSchema": {"properties": {"host": {"type": "string", "title": "Host"}, "bucket": {"type": "string", "title": "Bucket"}, "protocol": {"type": "string", "enum": ["http", "https"], "title": "Protocol", "default": "https"}, "region": {"type": "string", "title": "Region"}, "port": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Port"}, "bucket_style": {"type": "string", "enum": ["domain", "path"], "title": "Bucket Style", "default": "path"}, "additional_params": {"additionalProperties": true, "type": "object", "title": "Additional Params"}}, "type": "object", "required": ["host", "bucket", "region"], "title": "CreateS3ConnectionDataSchema"}, "CreateS3ConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "s3", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/CreateS3ConnectionDataSchema", "description": "Data required to connect to the S3 bucket"}, "auth_data": {"$ref": "#/components/schemas/CreateS3AuthSchema", "description": "S3 bucket credentials"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreateS3ConnectionSchema"}, "CreateSFTPConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "sftp", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/SFTPConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"$ref": "#/components/schemas/CreateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreateSFTPConnectionSchema"}, "CreateSambaAuthSchema": {"properties": {"type": {"type": "string", "const": "samba", "title": "Type", "description": "Auth type", "default": "samba"}, "user": {"type": "string", "title": "User"}, "auth_type": {"type": "string", "enum": ["NTLMv1", "NTLMv2"], "title": "Auth Type", "default": "NTLMv2"}, "password": {"type": "string", "format": "password", "title": "Password", "writeOnly": true}}, "type": "object", "required": ["user", "password"], "title": "CreateSambaAuthSchema"}, "CreateSambaConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "samba", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/SambaConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"$ref": "#/components/schemas/CreateSambaAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreateSambaConnectionSchema"}, "CreateTransferSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Transfer owner group id"}, "queue_id": {"type": "integer", "title": "Queue Id", "description": "id of the queue in which the transfer will be performed"}, "source_connection_id": {"type": "integer", "title": "Source Connection Id", "description": "id of the connection that will be the data source"}, "target_connection_id": {"type": "integer", "title": "Target Connection Id", "description": "id of the connection that will be the data receiver"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Transfer name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description", "default": ""}, "source_params": {"oneOf": [{"$ref": "#/components/schemas/ClickhouseTransferSourceOrTarget"}, {"$ref": "#/components/schemas/HiveTransferSourceOrTarget"}, {"$ref": "#/components/schemas/IcebergTransferSourceOrTarget"}, {"$ref": "#/components/schemas/MSSQLTransferSourceOrTarget"}, {"$ref": "#/components/schemas/MySQLTransferSourceOrTarget"}, {"$ref": "#/components/schemas/OracleTransferSourceOrTarget"}, {"$ref": "#/components/schemas/PostgresTransferSourceOrTarget"}, {"$ref": "#/components/schemas/HDFSTransferSource"}, {"$ref": "#/components/schemas/S3TransferSource"}, {"$ref": "#/components/schemas/SFTPTransferSource"}, {"$ref": "#/components/schemas/FTPTransferSource"}, {"$ref": "#/components/schemas/FTPSTransferSource"}, {"$ref": "#/components/schemas/WebDAVTransferSource"}, {"$ref": "#/components/schemas/SambaTransferSource"}], "title": "Source Params", "description": "Data source parameters", "discriminator": {"propertyName": "type", "mapping": {"clickhouse": "#/components/schemas/ClickhouseTransferSourceOrTarget", "ftp": "#/components/schemas/FTPTransferSource", "ftps": "#/components/schemas/FTPSTransferSource", "hdfs": "#/components/schemas/HDFSTransferSource", "hive": "#/components/schemas/HiveTransferSourceOrTarget", "iceberg": "#/components/schemas/IcebergTransferSourceOrTarget", "mssql": "#/components/schemas/MSSQLTransferSourceOrTarget", "mysql": "#/components/schemas/MySQLTransferSourceOrTarget", "oracle": "#/components/schemas/OracleTransferSourceOrTarget", "postgres": "#/components/schemas/PostgresTransferSourceOrTarget", "s3": "#/components/schemas/S3TransferSource", "samba": "#/components/schemas/SambaTransferSource", "sftp": "#/components/schemas/SFTPTransferSource", "webdav": "#/components/schemas/WebDAVTransferSource"}}}, "target_params": {"oneOf": [{"$ref": "#/components/schemas/ClickhouseTransferSourceOrTarget"}, {"$ref": "#/components/schemas/HiveTransferSourceOrTarget"}, {"$ref": "#/components/schemas/IcebergTransferSourceOrTarget"}, {"$ref": "#/components/schemas/MSSQLTransferSourceOrTarget"}, {"$ref": "#/components/schemas/MySQLTransferSourceOrTarget"}, {"$ref": "#/components/schemas/OracleTransferSourceOrTarget"}, {"$ref": "#/components/schemas/PostgresTransferSourceOrTarget"}, {"$ref": "#/components/schemas/HDFSTransferTarget"}, {"$ref": "#/components/schemas/S3TransferTarget"}, {"$ref": "#/components/schemas/SFTPTransferTarget"}, {"$ref": "#/components/schemas/FTPTransferTarget"}, {"$ref": "#/components/schemas/FTPSTransferTarget"}, {"$ref": "#/components/schemas/WebDAVTransferTarget"}, {"$ref": "#/components/schemas/SambaTransferTarget"}], "title": "Target Params", "description": "Data target parameters", "discriminator": {"propertyName": "type", "mapping": {"clickhouse": "#/components/schemas/ClickhouseTransferSourceOrTarget", "ftp": "#/components/schemas/FTPTransferTarget", "ftps": "#/components/schemas/FTPSTransferTarget", "hdfs": "#/components/schemas/HDFSTransferTarget", "hive": "#/components/schemas/HiveTransferSourceOrTarget", "iceberg": "#/components/schemas/IcebergTransferSourceOrTarget", "mssql": "#/components/schemas/MSSQLTransferSourceOrTarget", "mysql": "#/components/schemas/MySQLTransferSourceOrTarget", "oracle": "#/components/schemas/OracleTransferSourceOrTarget", "postgres": "#/components/schemas/PostgresTransferSourceOrTarget", "s3": "#/components/schemas/S3TransferTarget", "samba": "#/components/schemas/SambaTransferTarget", "sftp": "#/components/schemas/SFTPTransferTarget", "webdav": "#/components/schemas/WebDAVTransferTarget"}}}, "strategy_params": {"oneOf": [{"$ref": "#/components/schemas/FullStrategy"}, {"$ref": "#/components/schemas/IncrementalStrategy"}], "title": "Strategy Params", "description": "Incremental of full strategy", "discriminator": {"propertyName": "type", "mapping": {"full": "#/components/schemas/FullStrategy", "incremental": "#/components/schemas/IncrementalStrategy"}}}, "transformations": {"items": {"oneOf": [{"$ref": "#/components/schemas/DataframeRowsFilter"}, {"$ref": "#/components/schemas/DataframeColumnsFilter"}, {"$ref": "#/components/schemas/FileMetadataFilter-Input"}, {"$ref": "#/components/schemas/Sql"}], "discriminator": {"propertyName": "type", "mapping": {"dataframe_columns_filter": "#/components/schemas/DataframeColumnsFilter", "dataframe_rows_filter": "#/components/schemas/DataframeRowsFilter", "file_metadata_filter": "#/components/schemas/FileMetadataFilter-Input", "sql": "#/components/schemas/Sql"}}}, "type": "array", "title": "Transformations", "description": "List of transformations"}, "resources": {"$ref": "#/components/schemas/Resources-Input", "description": "Transfer resources"}, "is_scheduled": {"type": "boolean", "title": "Is Scheduled", "description": "Is the transfer on schedule", "default": false}, "schedule": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Schedule", "description": "Execution schedule in cron format"}}, "type": "object", "required": ["group_id", "queue_id", "source_connection_id", "target_connection_id", "name", "source_params", "target_params"], "title": "CreateTransferSchema"}, "CreateWebDAVConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "webdav", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/WebDAVConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"$ref": "#/components/schemas/CreateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "CreateWebDAVConnectionSchema"}, "DataframeColumnsFilter": {"properties": {"type": {"type": "string", "const": "dataframe_columns_filter", "title": "Type", "default": "dataframe_columns_filter"}, "filters": {"items": {"oneOf": [{"$ref": "#/components/schemas/IncludeFilter"}, {"$ref": "#/components/schemas/RenameFilter"}, {"$ref": "#/components/schemas/CastFilter"}], "discriminator": {"propertyName": "type", "mapping": {"cast": "#/components/schemas/CastFilter", "include": "#/components/schemas/IncludeFilter", "rename": "#/components/schemas/RenameFilter"}}}, "type": "array", "title": "Filters"}}, "type": "object", "title": "DataframeColumnsFilter"}, "DataframeRowsFilter": {"properties": {"type": {"type": "string", "const": "dataframe_rows_filter", "title": "Type"}, "filters": {"items": {"oneOf": [{"$ref": "#/components/schemas/IsNullFilter"}, {"$ref": "#/components/schemas/IsNotNullFilter"}, {"$ref": "#/components/schemas/EqualFilter"}, {"$ref": "#/components/schemas/NotEqualFilter"}, {"$ref": "#/components/schemas/GreaterThanFilter"}, {"$ref": "#/components/schemas/GreaterOrEqualFilter"}, {"$ref": "#/components/schemas/LessThanFilter"}, {"$ref": "#/components/schemas/LessOrEqualFilter"}, {"$ref": "#/components/schemas/LikeFilter"}, {"$ref": "#/components/schemas/ILikeFilter"}, {"$ref": "#/components/schemas/NotLikeFilter"}, {"$ref": "#/components/schemas/NotILikeFilter"}, {"$ref": "#/components/schemas/RegexpFilter"}], "discriminator": {"propertyName": "type", "mapping": {"equal": "#/components/schemas/EqualFilter", "greater_or_equal": "#/components/schemas/GreaterOrEqualFilter", "greater_than": "#/components/schemas/GreaterThanFilter", "ilike": "#/components/schemas/ILikeFilter", "is_not_null": "#/components/schemas/IsNotNullFilter", "is_null": "#/components/schemas/IsNullFilter", "less_or_equal": "#/components/schemas/LessOrEqualFilter", "less_than": "#/components/schemas/LessThanFilter", "like": "#/components/schemas/LikeFilter", "not_equal": "#/components/schemas/NotEqualFilter", "not_ilike": "#/components/schemas/NotILikeFilter", "not_like": "#/components/schemas/NotLikeFilter", "regexp": "#/components/schemas/RegexpFilter"}}}, "type": "array", "title": "Filters"}}, "type": "object", "required": ["type"], "title": "DataframeRowsFilter"}, "EqualFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "equal", "title": "Type", "default": "equal"}, "value": {"type": "string", "title": "Value", "examples": ["123"]}}, "type": "object", "required": ["field", "value"], "title": "EqualFilter"}, "Excel": {"properties": {"type": {"type": "string", "const": "excel", "title": "Type", "default": "excel"}, "include_header": {"type": "boolean", "title": "Include Header", "default": false}, "start_cell": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Start Cell"}}, "type": "object", "title": "Excel"}, "FTPConnectionDataSchema": {"properties": {"host": {"type": "string", "title": "Host"}, "port": {"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0, "title": "Port", "default": 21}}, "type": "object", "required": ["host"], "title": "FTPConnectionDataSchema"}, "FTPSConnectionDataSchema": {"properties": {"host": {"type": "string", "title": "Host"}, "port": {"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0, "title": "Port", "default": 21}}, "type": "object", "required": ["host"], "title": "FTPSConnectionDataSchema"}, "FTPSTransferSource": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}, {"$ref": "#/components/schemas/JSON"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "json": "#/components/schemas/JSON", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "ftps", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "FTPSTransferSource"}, "FTPSTransferTarget": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "file_name_template": {"type": "string", "pattern": "^[\\w.{}-]+$", "title": "File Name Template", "description": "Template for file naming with required placeholders 'index' and 'extension'", "default": "{run_created_at}-{index}.{extension}"}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "ftps", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "FTPSTransferTarget"}, "FTPTransferSource": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}, {"$ref": "#/components/schemas/JSON"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "json": "#/components/schemas/JSON", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "ftp", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "FTPTransferSource"}, "FTPTransferTarget": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "file_name_template": {"type": "string", "pattern": "^[\\w.{}-]+$", "title": "File Name Template", "description": "Template for file naming with required placeholders 'index' and 'extension'", "default": "{run_created_at}-{index}.{extension}"}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "ftp", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "FTPTransferTarget"}, "FileMetadataFilter-Input": {"properties": {"type": {"type": "string", "const": "file_metadata_filter", "title": "Type", "default": "file_metadata_filter"}, "filters": {"items": {"oneOf": [{"$ref": "#/components/schemas/NameGlobFilter"}, {"$ref": "#/components/schemas/NameRegexpFilter"}, {"$ref": "#/components/schemas/FileSizeMinFilter-Input"}, {"$ref": "#/components/schemas/FileSizeMaxFilter-Input"}], "discriminator": {"propertyName": "type", "mapping": {"file_size_max": "#/components/schemas/FileSizeMaxFilter-Input", "file_size_min": "#/components/schemas/FileSizeMinFilter-Input", "name_glob": "#/components/schemas/NameGlobFilter", "name_regexp": "#/components/schemas/NameRegexpFilter"}}}, "type": "array", "title": "Filters"}}, "type": "object", "title": "FileMetadataFilter"}, "FileMetadataFilter-Output": {"properties": {"type": {"type": "string", "const": "file_metadata_filter", "title": "Type", "default": "file_metadata_filter"}, "filters": {"items": {"oneOf": [{"$ref": "#/components/schemas/NameGlobFilter"}, {"$ref": "#/components/schemas/NameRegexpFilter"}, {"$ref": "#/components/schemas/FileSizeMinFilter-Output"}, {"$ref": "#/components/schemas/FileSizeMaxFilter-Output"}], "discriminator": {"propertyName": "type", "mapping": {"file_size_max": "#/components/schemas/FileSizeMaxFilter-Output", "file_size_min": "#/components/schemas/FileSizeMinFilter-Output", "name_glob": "#/components/schemas/NameGlobFilter", "name_regexp": "#/components/schemas/NameRegexpFilter"}}}, "type": "array", "title": "Filters"}}, "type": "object", "title": "FileMetadataFilter"}, "FileSizeMaxFilter-Input": {"properties": {"type": {"type": "string", "const": "file_size_max", "title": "Type", "default": "file_size_max"}, "value": {"anyOf": [{"type": "string", "pattern": "^\\s*(\\d*\\.?\\d+)\\s*(\\w+)?"}, {"type": "integer", "minimum": 0.0}], "title": "Value", "examples": [1073741824]}}, "type": "object", "required": ["value"], "title": "FileSizeMaxFilter"}, "FileSizeMaxFilter-Output": {"properties": {"type": {"type": "string", "const": "file_size_max", "title": "Type", "default": "file_size_max"}, "value": {"type": "integer", "minimum": 0.0, "title": "Value", "examples": [1073741824]}}, "type": "object", "required": ["value"], "title": "FileSizeMaxFilter"}, "FileSizeMinFilter-Input": {"properties": {"type": {"type": "string", "const": "file_size_min", "title": "Type", "default": "file_size_min"}, "value": {"anyOf": [{"type": "string", "pattern": "^\\s*(\\d*\\.?\\d+)\\s*(\\w+)?"}, {"type": "integer", "minimum": 0.0}], "title": "Value", "examples": [1048576]}}, "type": "object", "required": ["value"], "title": "FileSizeMinFilter"}, "FileSizeMinFilter-Output": {"properties": {"type": {"type": "string", "const": "file_size_min", "title": "Type", "default": "file_size_min"}, "value": {"type": "integer", "minimum": 0.0, "title": "Value", "examples": [1048576]}}, "type": "object", "required": ["value"], "title": "FileSizeMinFilter"}, "FullStrategy": {"properties": {"type": {"type": "string", "const": "full", "title": "Type", "default": "full"}}, "type": "object", "title": "FullStrategy"}, "GreaterOrEqualFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "greater_or_equal", "title": "Type", "default": "greater_or_equal"}, "value": {"type": "string", "title": "Value", "examples": ["123"]}}, "type": "object", "required": ["field", "value"], "title": "GreaterOrEqualFilter"}, "GreaterThanFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "greater_than", "title": "Type", "default": "greater_than"}, "value": {"type": "string", "title": "Value", "examples": ["123"]}}, "type": "object", "required": ["field", "value"], "title": "GreaterThanFilter"}, "GroupMemberRole": {"type": "string", "enum": ["Maintainer", "Developer", "Owner", "Guest", "Superuser"], "title": "GroupMemberRole"}, "GroupPageSchema": {"properties": {"meta": {"$ref": "#/components/schemas/MetaPageSchema"}, "items": {"items": {"$ref": "#/components/schemas/GroupWithUserRoleSchema"}, "type": "array", "title": "Items"}}, "type": "object", "required": ["meta", "items"], "title": "GroupPageSchema"}, "GroupWithUserRoleSchema": {"properties": {"data": {"$ref": "#/components/schemas/ReadGroupSchema"}, "role": {"$ref": "#/components/schemas/GroupMemberRole"}}, "type": "object", "required": ["data", "role"], "title": "GroupWithUserRoleSchema"}, "HDFSConnectionDataSchema": {"properties": {"cluster": {"type": "string", "title": "Cluster"}}, "type": "object", "required": ["cluster"], "title": "HDFSConnectionDataSchema"}, "HDFSTransferSource": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}, {"$ref": "#/components/schemas/JSON"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "json": "#/components/schemas/JSON", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "hdfs", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "HDFSTransferSource"}, "HDFSTransferTarget": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "file_name_template": {"type": "string", "pattern": "^[\\w.{}-]+$", "title": "File Name Template", "description": "Template for file naming with required placeholders 'index' and 'extension'", "default": "{run_created_at}-{index}.{extension}"}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "hdfs", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "HDFSTransferTarget"}, "HiveConnectionDataSchema": {"properties": {"cluster": {"type": "string", "title": "Cluster"}}, "type": "object", "required": ["cluster"], "title": "HiveConnectionDataSchema"}, "HiveTransferSourceOrTarget": {"properties": {"table_name": {"type": "string", "pattern": "^[\\w\\d]+\\.[\\w\\d]+$", "title": "Table Name", "description": "Table name", "examples": ["myschema.mytable"]}, "type": {"type": "string", "const": "hive", "title": "Type"}}, "type": "object", "required": ["table_name", "type"], "title": "HiveTransferSourceOrTarget"}, "ILikeFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "ilike", "title": "Type", "default": "ilike"}, "value": {"type": "string", "title": "Value", "examples": ["%.json"]}}, "type": "object", "required": ["field", "value"], "title": "ILikeFilter"}, "IcebergRESTCatalogS3DelegatedConnectionDataSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_s3_delegated", "title": "Type", "default": "iceberg_rest_s3_delegated"}, "rest_catalog_url": {"type": "string", "minLength": 1, "format": "uri", "title": "Rest Catalog Url"}, "s3_warehouse_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "S3 Warehouse Name"}, "s3_access_delegation": {"type": "string", "enum": ["vended-credentials", "remote-signing"], "title": "S3 Access Delegation", "default": "vended-credentials"}}, "type": "object", "required": ["rest_catalog_url"], "title": "IcebergRESTCatalogS3DelegatedConnectionDataSchema"}, "IcebergRESTCatalogS3DirectConnectionDataSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_s3_direct", "title": "Type", "default": "iceberg_rest_s3_direct"}, "rest_catalog_url": {"type": "string", "minLength": 1, "format": "uri", "title": "Rest Catalog Url"}, "s3_warehouse_path": {"type": "string", "title": "S3 Warehouse Path"}, "s3_host": {"type": "string", "title": "S3 Host"}, "s3_port": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "S3 Port"}, "s3_protocol": {"type": "string", "enum": ["http", "https"], "title": "S3 Protocol", "default": "https"}, "s3_bucket": {"type": "string", "title": "S3 Bucket"}, "s3_region": {"type": "string", "title": "S3 Region"}, "s3_bucket_style": {"type": "string", "enum": ["domain", "path"], "title": "S3 Bucket Style", "default": "path"}, "s3_additional_params": {"additionalProperties": true, "type": "object", "title": "S3 Additional Params"}}, "type": "object", "required": ["rest_catalog_url", "s3_warehouse_path", "s3_host", "s3_bucket", "s3_region"], "title": "IcebergRESTCatalogS3DirectConnectionDataSchema"}, "IcebergTransferSourceOrTarget": {"properties": {"table_name": {"type": "string", "pattern": "^[\\w\\d]+(\\.[\\w\\d]+)+$", "title": "Table Name", "description": "Table name", "examples": ["myschema.mytable"]}, "type": {"type": "string", "const": "iceberg", "title": "Type"}}, "type": "object", "required": ["table_name", "type"], "title": "IcebergTransferSourceOrTarget"}, "IncludeFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "include", "title": "Type", "default": "include"}}, "type": "object", "required": ["field"], "title": "IncludeFilter"}, "IncrementalStrategy": {"properties": {"type": {"type": "string", "const": "incremental", "title": "Type", "default": "incremental"}, "increment_by": {"type": "string", "title": "Increment By"}}, "type": "object", "required": ["increment_by"], "title": "IncrementalStrategy"}, "InvalidRequestBaseErrorSchema": {"properties": {"location": {"items": {"anyOf": [{"type": "string"}, {"type": "integer"}]}, "type": "array", "title": "Location"}, "message": {"type": "string", "title": "Message"}, "code": {"type": "string", "title": "Code"}, "context": {"additionalProperties": true, "type": "object", "title": "Context"}, "input": {"title": "Input"}}, "type": "object", "required": ["location", "message", "code"], "title": "InvalidRequestBaseErrorSchema"}, "InvalidRequestSchema": {"properties": {"code": {"type": "string", "const": "invalid_request", "title": "Code", "default": "invalid_request"}, "message": {"type": "string", "const": "Invalid request", "title": "Message", "default": "Invalid request"}, "details": {"items": {"$ref": "#/components/schemas/InvalidRequestBaseErrorSchema"}, "type": "array", "title": "Details"}}, "type": "object", "required": ["details"], "title": "InvalidRequestSchema"}, "IsNotNullFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "is_not_null", "title": "Type", "default": "is_not_null"}}, "type": "object", "required": ["field"], "title": "IsNotNullFilter"}, "IsNullFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "is_null", "title": "Type", "default": "is_null"}}, "type": "object", "required": ["field"], "title": "IsNullFilter"}, "JSON": {"properties": {"type": {"type": "string", "const": "json", "title": "Type", "default": "json"}, "encoding": {"type": "string", "title": "Encoding", "default": "utf-8"}, "line_sep": {"type": "string", "title": "Line Sep", "default": "\n"}, "compression": {"$ref": "#/components/schemas/JSONCompression", "default": "gzip"}}, "type": "object", "title": "JSON"}, "JSONCompression": {"type": "string", "enum": ["none", "bzip2", "gzip", "lz4", "snappy", "deflate"], "title": "JSONCompression"}, "JSONLine": {"properties": {"type": {"type": "string", "const": "jsonline", "title": "Type", "default": "jsonline"}, "encoding": {"type": "string", "title": "Encoding", "default": "utf-8"}, "line_sep": {"type": "string", "title": "Line Sep", "default": "\n"}, "compression": {"$ref": "#/components/schemas/JSONCompression", "default": "gzip"}}, "type": "object", "title": "JSONLine"}, "LessOrEqualFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "less_or_equal", "title": "Type", "default": "less_or_equal"}, "value": {"type": "string", "title": "Value", "examples": ["123"]}}, "type": "object", "required": ["field", "value"], "title": "LessOrEqualFilter"}, "LessThanFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "less_than", "title": "Type", "default": "less_than"}, "value": {"type": "string", "title": "Value", "examples": ["123"]}}, "type": "object", "required": ["field", "value"], "title": "LessThanFilter"}, "LikeFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "like", "title": "Type", "default": "like"}, "value": {"type": "string", "title": "Value", "examples": ["%.json"]}}, "type": "object", "required": ["field", "value"], "title": "LikeFilter"}, "MSSQLConnectionDataSchema": {"properties": {"host": {"type": "string", "title": "Host"}, "port": {"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0, "title": "Port", "default": 1433}, "database_name": {"type": "string", "title": "Database Name"}, "additional_params": {"additionalProperties": true, "type": "object", "title": "Additional Params"}}, "type": "object", "required": ["host", "database_name"], "title": "MSSQLConnectionDataSchema"}, "MSSQLTransferSourceOrTarget": {"properties": {"table_name": {"type": "string", "pattern": "^[\\w\\d]+\\.[\\w\\d]+$", "title": "Table Name", "description": "Table name", "examples": ["myschema.mytable"]}, "type": {"type": "string", "const": "mssql", "title": "Type"}}, "type": "object", "required": ["table_name", "type"], "title": "MSSQLTransferSourceOrTarget"}, "MetaPageSchema": {"properties": {"page": {"type": "integer", "title": "Page"}, "pages": {"type": "integer", "title": "Pages"}, "total": {"type": "integer", "title": "Total"}, "page_size": {"type": "integer", "title": "Page Size"}, "has_next": {"type": "boolean", "title": "Has Next"}, "has_previous": {"type": "boolean", "title": "Has Previous"}, "next_page": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Next Page"}, "previous_page": {"anyOf": [{"type": "integer"}, {"type": "null"}], "title": "Previous Page"}}, "type": "object", "required": ["page", "pages", "total", "page_size", "has_next", "has_previous"], "title": "MetaPageSchema"}, "MySQLConnectionDataSchema": {"properties": {"host": {"type": "string", "title": "Host"}, "port": {"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0, "title": "Port", "default": 3306}, "database_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Database Name"}, "additional_params": {"additionalProperties": true, "type": "object", "title": "Additional Params"}}, "type": "object", "required": ["host"], "title": "MySQLConnectionDataSchema"}, "MySQLTransferSourceOrTarget": {"properties": {"table_name": {"type": "string", "pattern": "^[\\w\\d]+\\.[\\w\\d]+$", "title": "Table Name", "description": "Table name", "examples": ["myschema.mytable"]}, "type": {"type": "string", "const": "mysql", "title": "Type"}}, "type": "object", "required": ["table_name", "type"], "title": "MySQLTransferSourceOrTarget"}, "NameGlobFilter": {"properties": {"type": {"type": "string", "const": "name_glob", "title": "Type", "default": "name_glob"}, "value": {"type": "string", "title": "Value", "examples": ["*.json"]}}, "type": "object", "required": ["value"], "title": "NameGlobFilter"}, "NameRegexpFilter": {"properties": {"type": {"type": "string", "const": "name_regexp", "title": "Type", "default": "name_regexp"}, "value": {"type": "string", "title": "Value", "examples": ["^\\d+\\.json$"]}}, "type": "object", "required": ["value"], "title": "NameRegexpFilter"}, "NotAuthorizedSchema": {"properties": {"code": {"type": "string", "const": "unauthorized", "title": "Code", "default": "unauthorized"}, "message": {"type": "string", "title": "Message"}, "details": {"title": "Details"}}, "type": "object", "required": ["message"], "title": "NotAuthorizedSchema"}, "NotEqualFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "not_equal", "title": "Type", "default": "not_equal"}, "value": {"type": "string", "title": "Value", "examples": ["123"]}}, "type": "object", "required": ["field", "value"], "title": "NotEqualFilter"}, "NotILikeFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "not_ilike", "title": "Type", "default": "not_ilike"}, "value": {"type": "string", "title": "Value", "examples": ["%.json"]}}, "type": "object", "required": ["field", "value"], "title": "NotILikeFilter"}, "NotLikeFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "not_like", "title": "Type", "default": "not_like"}, "value": {"type": "string", "title": "Value", "examples": ["%.json"]}}, "type": "object", "required": ["field", "value"], "title": "NotLikeFilter"}, "ORC": {"properties": {"type": {"type": "string", "const": "orc", "title": "Type", "default": "orc"}, "compression": {"$ref": "#/components/schemas/ORCCompression", "default": "zlib"}}, "type": "object", "title": "ORC"}, "ORCCompression": {"type": "string", "enum": ["none", "snappy", "zlib", "lz4"], "title": "ORCCompression"}, "OracleConnectionDataSchema": {"properties": {"host": {"type": "string", "title": "Host"}, "port": {"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0, "title": "Port", "default": 1521}, "service_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Service Name"}, "sid": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Sid"}, "additional_params": {"additionalProperties": true, "type": "object", "title": "Additional Params"}}, "type": "object", "required": ["host"], "title": "OracleConnectionDataSchema"}, "OracleTransferSourceOrTarget": {"properties": {"table_name": {"type": "string", "pattern": "^[\\w\\d]+\\.[\\w\\d]+$", "title": "Table Name", "description": "Table name", "examples": ["myschema.mytable"]}, "type": {"type": "string", "const": "oracle", "title": "Type"}}, "type": "object", "required": ["table_name", "type"], "title": "OracleTransferSourceOrTarget"}, "Parquet": {"properties": {"type": {"type": "string", "const": "parquet", "title": "Type", "default": "parquet"}, "compression": {"$ref": "#/components/schemas/ParquetCompression", "default": "snappy"}}, "type": "object", "title": "Parquet"}, "ParquetCompression": {"type": "string", "enum": ["none", "snappy", "gzip", "lz4"], "title": "ParquetCompression"}, "PingResponse": {"properties": {"status": {"type": "string", "const": "ok", "title": "Status", "default": "ok"}}, "type": "object", "title": "PingResponse", "description": "Ping result"}, "PostgresConnectionDataSchema": {"properties": {"host": {"type": "string", "title": "Host"}, "port": {"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0, "title": "Port", "default": 5432}, "database_name": {"type": "string", "title": "Database Name"}, "additional_params": {"additionalProperties": true, "type": "object", "title": "Additional Params"}}, "type": "object", "required": ["host", "database_name"], "title": "PostgresConnectionDataSchema"}, "PostgresTransferSourceOrTarget": {"properties": {"table_name": {"type": "string", "pattern": "^[\\w\\d]+\\.[\\w\\d]+$", "title": "Table Name", "description": "Table name", "examples": ["myschema.mytable"]}, "type": {"type": "string", "const": "postgres", "title": "Type"}}, "type": "object", "required": ["table_name", "type"], "title": "PostgresTransferSourceOrTarget"}, "QueuePageSchema": {"properties": {"meta": {"$ref": "#/components/schemas/MetaPageSchema"}, "items": {"items": {"$ref": "#/components/schemas/ReadQueueSchema"}, "type": "array", "title": "Items"}}, "type": "object", "required": ["meta", "items"], "title": "QueuePageSchema"}, "ReadBasicAuthSchema": {"properties": {"type": {"type": "string", "const": "basic", "title": "Type", "description": "Auth type", "default": "basic"}, "user": {"type": "string", "title": "User"}}, "type": "object", "required": ["user"], "title": "ReadBasicAuthSchema"}, "ReadClickhouseConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "clickhouse", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/ClickhouseConnectionDataSchema", "description": "Data required to connect to the database"}, "auth_data": {"anyOf": [{"$ref": "#/components/schemas/ReadBasicAuthSchema"}, {"type": "null"}], "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data", "auth_data"], "title": "ReadClickhouseConnectionSchema"}, "ReadFTPConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "ftp", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/FTPConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"anyOf": [{"$ref": "#/components/schemas/ReadBasicAuthSchema"}, {"type": "null"}], "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data"], "title": "ReadFTPConnectionSchema"}, "ReadFTPSConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "ftps", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/FTPSConnectionDataSchema"}, "auth_data": {"anyOf": [{"$ref": "#/components/schemas/ReadBasicAuthSchema"}, {"type": "null"}], "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data"], "title": "ReadFTPSConnectionSchema"}, "ReadGroupMember": {"properties": {"id": {"type": "integer", "title": "Id"}, "username": {"type": "string", "title": "Username"}, "role": {"$ref": "#/components/schemas/GroupMemberRole"}}, "type": "object", "required": ["id", "username", "role"], "title": "ReadGroupMember"}, "ReadGroupSchema": {"properties": {"name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name"}, "description": {"type": "string", "title": "Description"}, "owner_id": {"type": "integer", "title": "Owner Id"}, "id": {"type": "integer", "title": "Id"}}, "type": "object", "required": ["name", "description", "owner_id", "id"], "title": "ReadGroupSchema"}, "ReadHDFSConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "hdfs", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/HDFSConnectionDataSchema", "description": "Data required to connect to the HDFS cluster"}, "auth_data": {"anyOf": [{"$ref": "#/components/schemas/ReadBasicAuthSchema"}, {"type": "null"}], "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data"], "title": "ReadHDFSConnectionSchema"}, "ReadHiveConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "hive", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/HiveConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"anyOf": [{"$ref": "#/components/schemas/ReadBasicAuthSchema"}, {"type": "null"}], "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data"], "title": "ReadHiveConnectionSchema"}, "ReadIcebergConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "iceberg", "title": "Type", "description": "Connection type"}, "connection_data": {"oneOf": [{"$ref": "#/components/schemas/IcebergRESTCatalogS3DirectConnectionDataSchema"}, {"$ref": "#/components/schemas/IcebergRESTCatalogS3DelegatedConnectionDataSchema"}], "title": "Connection Data", "description": "Data required to connect to REST catalog and to object storage", "discriminator": {"propertyName": "type", "mapping": {"iceberg_rest_s3_delegated": "#/components/schemas/IcebergRESTCatalogS3DelegatedConnectionDataSchema", "iceberg_rest_s3_direct": "#/components/schemas/IcebergRESTCatalogS3DirectConnectionDataSchema"}}}, "auth_data": {"anyOf": [{"oneOf": [{"$ref": "#/components/schemas/ReadIcebergRESTCatalogBearerS3BasicAuthSchema"}, {"$ref": "#/components/schemas/ReadIcebergRESTCatalogOAuth2ClientCredentialsS3BasicAuthSchema"}, {"$ref": "#/components/schemas/ReadIcebergRESTCatalogBearerAuthSchema"}, {"$ref": "#/components/schemas/ReadIcebergRESTCatalogOAuth2ClientCredentialsAuthSchema"}], "discriminator": {"propertyName": "type", "mapping": {"iceberg_rest_bearer": "#/components/schemas/ReadIcebergRESTCatalogBearerAuthSchema", "iceberg_rest_bearer_s3_basic": "#/components/schemas/ReadIcebergRESTCatalogBearerS3BasicAuthSchema", "iceberg_rest_oauth2_client_credentials": "#/components/schemas/ReadIcebergRESTCatalogOAuth2ClientCredentialsAuthSchema", "iceberg_rest_oauth2_client_credentials_s3_basic": "#/components/schemas/ReadIcebergRESTCatalogOAuth2ClientCredentialsS3BasicAuthSchema"}}}, {"type": "null"}], "title": "Auth Data", "description": "Credentials for REST Catalog and object storage"}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data"], "title": "ReadIcebergConnectionSchema"}, "ReadIcebergRESTCatalogBearerAuthSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_bearer", "title": "Type", "description": "Auth type", "default": "iceberg_rest_bearer"}}, "type": "object", "title": "ReadIcebergRESTCatalogBearerAuthSchema"}, "ReadIcebergRESTCatalogBearerS3BasicAuthSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_bearer_s3_basic", "title": "Type", "description": "Auth type", "default": "iceberg_rest_bearer_s3_basic"}, "s3_access_key": {"type": "string", "title": "S3 Access Key"}}, "type": "object", "required": ["s3_access_key"], "title": "ReadIcebergRESTCatalogBearerS3BasicAuthSchema"}, "ReadIcebergRESTCatalogOAuth2ClientCredentialsAuthSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_oauth2_client_credentials", "title": "Type", "description": "Auth type", "default": "iceberg_rest_oauth2_client_credentials"}, "rest_catalog_oauth2_client_id": {"type": "string", "title": "Rest Catalog Oauth2 Client Id"}, "rest_catalog_oauth2_scopes": {"items": {"type": "string"}, "type": "array", "title": "Rest Catalog Oauth2 Scopes"}, "rest_catalog_oauth2_resource": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Resource"}, "rest_catalog_oauth2_audience": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Audience"}, "rest_catalog_oauth2_token_endpoint": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Token Endpoint"}}, "type": "object", "required": ["rest_catalog_oauth2_client_id"], "title": "ReadIcebergRESTCatalogOAuth2ClientCredentialsAuthSchema"}, "ReadIcebergRESTCatalogOAuth2ClientCredentialsS3BasicAuthSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_oauth2_client_credentials_s3_basic", "title": "Type", "description": "Auth type", "default": "iceberg_rest_oauth2_client_credentials_s3_basic"}, "rest_catalog_oauth2_client_id": {"type": "string", "title": "Rest Catalog Oauth2 Client Id"}, "rest_catalog_oauth2_scopes": {"items": {"type": "string"}, "type": "array", "title": "Rest Catalog Oauth2 Scopes"}, "rest_catalog_oauth2_resource": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Resource"}, "rest_catalog_oauth2_audience": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Audience"}, "rest_catalog_oauth2_token_endpoint": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Token Endpoint"}, "s3_access_key": {"type": "string", "title": "S3 Access Key"}}, "type": "object", "required": ["rest_catalog_oauth2_client_id", "s3_access_key"], "title": "ReadIcebergRESTCatalogOAuth2ClientCredentialsS3BasicAuthSchema"}, "ReadMSSQLConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "mssql", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/MSSQLConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"anyOf": [{"$ref": "#/components/schemas/ReadBasicAuthSchema"}, {"type": "null"}], "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data"], "title": "ReadMSSQLConnectionSchema"}, "ReadMySQLConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "mysql", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/MySQLConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"anyOf": [{"$ref": "#/components/schemas/ReadBasicAuthSchema"}, {"type": "null"}], "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data"], "title": "ReadMySQLConnectionSchema"}, "ReadOracleConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "oracle", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/OracleConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"anyOf": [{"$ref": "#/components/schemas/ReadBasicAuthSchema"}, {"type": "null"}], "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data"], "title": "ReadOracleConnectionSchema"}, "ReadPostgresConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "postgres", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/PostgresConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"anyOf": [{"$ref": "#/components/schemas/ReadBasicAuthSchema"}, {"type": "null"}], "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data"], "title": "ReadPostgresConnectionSchema"}, "ReadQueueSchema": {"properties": {"name": {"type": "string", "maxLength": 128, "minLength": 3, "pattern": "^[ -~]+$", "title": "Name", "description": "Queue name. Can contain allows letters, numbers, dashes, and underscores"}, "group_id": {"type": "integer", "title": "Group Id", "description": "Group id the queue is bound to"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description", "default": ""}, "slug": {"type": "string", "title": "Slug"}, "id": {"type": "integer", "title": "Id"}}, "type": "object", "required": ["name", "group_id", "slug", "id"], "title": "ReadQueueSchema"}, "ReadRunSchema": {"properties": {"transfer_id": {"type": "integer", "title": "Transfer Id", "description": "Transfer id"}, "id": {"type": "integer", "title": "Id", "description": "Run id"}, "started_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Started At"}, "ended_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Ended At"}, "status": {"$ref": "#/components/schemas/Status"}, "log_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Log Url"}, "type": {"$ref": "#/components/schemas/RunType"}, "transfer_dump": {"additionalProperties": true, "type": "object", "title": "Transfer Dump"}}, "type": "object", "required": ["transfer_id", "id", "status", "type", "transfer_dump"], "title": "ReadRunSchema"}, "ReadS3AuthSchema": {"properties": {"type": {"type": "string", "const": "s3", "title": "Type", "description": "Auth type", "default": "s3"}, "access_key": {"type": "string", "title": "Access Key"}}, "type": "object", "required": ["access_key"], "title": "ReadS3AuthSchema"}, "ReadS3ConnectionDataSchema": {"properties": {"host": {"type": "string", "title": "Host"}, "bucket": {"type": "string", "title": "Bucket"}, "protocol": {"type": "string", "enum": ["http", "https"], "title": "Protocol", "default": "https"}, "region": {"type": "string", "title": "Region"}, "port": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Port"}, "bucket_style": {"type": "string", "enum": ["domain", "path"], "title": "Bucket Style", "default": "path"}, "additional_params": {"additionalProperties": true, "type": "object", "title": "Additional Params"}}, "type": "object", "required": ["host", "bucket", "region"], "title": "ReadS3ConnectionDataSchema"}, "ReadS3ConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "s3", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/ReadS3ConnectionDataSchema", "description": "Data required to connect to the S3 bucket"}, "auth_data": {"anyOf": [{"$ref": "#/components/schemas/ReadS3AuthSchema"}, {"type": "null"}], "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data"], "title": "ReadS3ConnectionSchema"}, "ReadSFTPConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "sftp", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/SFTPConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"anyOf": [{"$ref": "#/components/schemas/ReadBasicAuthSchema"}, {"type": "null"}], "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data"], "title": "ReadSFTPConnectionSchema"}, "ReadSambaAuthSchema": {"properties": {"type": {"type": "string", "const": "samba", "title": "Type", "description": "Auth type", "default": "samba"}, "user": {"type": "string", "title": "User"}, "auth_type": {"type": "string", "enum": ["NTLMv1", "NTLMv2"], "title": "Auth Type", "default": "NTLMv2"}}, "type": "object", "required": ["user"], "title": "ReadSambaAuthSchema"}, "ReadSambaConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "samba", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/SambaConnectionDataSchema"}, "auth_data": {"anyOf": [{"$ref": "#/components/schemas/ReadSambaAuthSchema"}, {"type": "null"}]}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data"], "title": "ReadSambaConnectionSchema"}, "ReadTransferSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Transfer owner group id"}, "queue_id": {"type": "integer", "title": "Queue Id", "description": "id of the queue in which the transfer will be performed"}, "source_connection_id": {"type": "integer", "title": "Source Connection Id", "description": "id of the connection that will be the data source"}, "target_connection_id": {"type": "integer", "title": "Target Connection Id", "description": "id of the connection that will be the data receiver"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Transfer name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description", "default": ""}, "source_params": {"oneOf": [{"$ref": "#/components/schemas/ClickhouseTransferSourceOrTarget"}, {"$ref": "#/components/schemas/HiveTransferSourceOrTarget"}, {"$ref": "#/components/schemas/IcebergTransferSourceOrTarget"}, {"$ref": "#/components/schemas/MSSQLTransferSourceOrTarget"}, {"$ref": "#/components/schemas/MySQLTransferSourceOrTarget"}, {"$ref": "#/components/schemas/OracleTransferSourceOrTarget"}, {"$ref": "#/components/schemas/PostgresTransferSourceOrTarget"}, {"$ref": "#/components/schemas/HDFSTransferSource"}, {"$ref": "#/components/schemas/S3TransferSource"}, {"$ref": "#/components/schemas/SFTPTransferSource"}, {"$ref": "#/components/schemas/FTPTransferSource"}, {"$ref": "#/components/schemas/FTPSTransferSource"}, {"$ref": "#/components/schemas/WebDAVTransferSource"}, {"$ref": "#/components/schemas/SambaTransferSource"}], "title": "Source Params", "description": "Data source parameters", "discriminator": {"propertyName": "type", "mapping": {"clickhouse": "#/components/schemas/ClickhouseTransferSourceOrTarget", "ftp": "#/components/schemas/FTPTransferSource", "ftps": "#/components/schemas/FTPSTransferSource", "hdfs": "#/components/schemas/HDFSTransferSource", "hive": "#/components/schemas/HiveTransferSourceOrTarget", "iceberg": "#/components/schemas/IcebergTransferSourceOrTarget", "mssql": "#/components/schemas/MSSQLTransferSourceOrTarget", "mysql": "#/components/schemas/MySQLTransferSourceOrTarget", "oracle": "#/components/schemas/OracleTransferSourceOrTarget", "postgres": "#/components/schemas/PostgresTransferSourceOrTarget", "s3": "#/components/schemas/S3TransferSource", "samba": "#/components/schemas/SambaTransferSource", "sftp": "#/components/schemas/SFTPTransferSource", "webdav": "#/components/schemas/WebDAVTransferSource"}}}, "target_params": {"oneOf": [{"$ref": "#/components/schemas/ClickhouseTransferSourceOrTarget"}, {"$ref": "#/components/schemas/HiveTransferSourceOrTarget"}, {"$ref": "#/components/schemas/IcebergTransferSourceOrTarget"}, {"$ref": "#/components/schemas/MSSQLTransferSourceOrTarget"}, {"$ref": "#/components/schemas/MySQLTransferSourceOrTarget"}, {"$ref": "#/components/schemas/OracleTransferSourceOrTarget"}, {"$ref": "#/components/schemas/PostgresTransferSourceOrTarget"}, {"$ref": "#/components/schemas/HDFSTransferTarget"}, {"$ref": "#/components/schemas/S3TransferTarget"}, {"$ref": "#/components/schemas/SFTPTransferTarget"}, {"$ref": "#/components/schemas/FTPTransferTarget"}, {"$ref": "#/components/schemas/FTPSTransferTarget"}, {"$ref": "#/components/schemas/WebDAVTransferTarget"}, {"$ref": "#/components/schemas/SambaTransferTarget"}], "title": "Target Params", "description": "Data target parameters", "discriminator": {"propertyName": "type", "mapping": {"clickhouse": "#/components/schemas/ClickhouseTransferSourceOrTarget", "ftp": "#/components/schemas/FTPTransferTarget", "ftps": "#/components/schemas/FTPSTransferTarget", "hdfs": "#/components/schemas/HDFSTransferTarget", "hive": "#/components/schemas/HiveTransferSourceOrTarget", "iceberg": "#/components/schemas/IcebergTransferSourceOrTarget", "mssql": "#/components/schemas/MSSQLTransferSourceOrTarget", "mysql": "#/components/schemas/MySQLTransferSourceOrTarget", "oracle": "#/components/schemas/OracleTransferSourceOrTarget", "postgres": "#/components/schemas/PostgresTransferSourceOrTarget", "s3": "#/components/schemas/S3TransferTarget", "samba": "#/components/schemas/SambaTransferTarget", "sftp": "#/components/schemas/SFTPTransferTarget", "webdav": "#/components/schemas/WebDAVTransferTarget"}}}, "strategy_params": {"oneOf": [{"$ref": "#/components/schemas/FullStrategy"}, {"$ref": "#/components/schemas/IncrementalStrategy"}], "title": "Strategy Params", "description": "Incremental of full strategy", "discriminator": {"propertyName": "type", "mapping": {"full": "#/components/schemas/FullStrategy", "incremental": "#/components/schemas/IncrementalStrategy"}}}, "transformations": {"items": {"oneOf": [{"$ref": "#/components/schemas/DataframeRowsFilter"}, {"$ref": "#/components/schemas/DataframeColumnsFilter"}, {"$ref": "#/components/schemas/FileMetadataFilter-Output"}, {"$ref": "#/components/schemas/Sql"}], "discriminator": {"propertyName": "type", "mapping": {"dataframe_columns_filter": "#/components/schemas/DataframeColumnsFilter", "dataframe_rows_filter": "#/components/schemas/DataframeRowsFilter", "file_metadata_filter": "#/components/schemas/FileMetadataFilter-Output", "sql": "#/components/schemas/Sql"}}}, "type": "array", "title": "Transformations", "description": "List of transformations"}, "resources": {"$ref": "#/components/schemas/Resources-Output", "description": "Transfer resources"}, "is_scheduled": {"type": "boolean", "title": "Is Scheduled", "description": "Is the transfer on schedule", "default": false}, "schedule": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Schedule", "description": "Execution schedule in cron format"}, "id": {"type": "integer", "title": "Id"}}, "type": "object", "required": ["group_id", "queue_id", "source_connection_id", "target_connection_id", "name", "source_params", "target_params", "id"], "title": "ReadTransferSchema"}, "ReadUserSchema": {"properties": {"id": {"type": "integer", "title": "Id"}, "username": {"type": "string", "title": "Username"}, "is_superuser": {"type": "boolean", "title": "Is Superuser"}}, "type": "object", "required": ["id", "username", "is_superuser"], "title": "ReadUserSchema"}, "ReadWebDAVConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "id": {"type": "integer", "title": "Id", "description": "Connection id"}, "type": {"type": "string", "const": "webdav", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/WebDAVConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"anyOf": [{"$ref": "#/components/schemas/ReadBasicAuthSchema"}, {"type": "null"}], "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "id", "type", "connection_data"], "title": "ReadWebDAVConnectionSchema"}, "RegexpFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "regexp", "title": "Type", "default": "regexp"}, "value": {"type": "string", "title": "Value", "examples": ["^\\d+\\.json$"]}}, "type": "object", "required": ["field", "value"], "title": "RegexpFilter"}, "RenameFilter": {"properties": {"field": {"type": "string", "title": "Field"}, "type": {"type": "string", "const": "rename", "title": "Type", "default": "rename"}, "to": {"type": "string", "title": "To", "examples": ["new_column_name"]}}, "type": "object", "required": ["field", "to"], "title": "RenameFilter"}, "Resources-Input": {"properties": {"max_parallel_tasks": {"type": "integer", "maximum": 100.0, "minimum": 1.0, "title": "Max Parallel Tasks", "description": "Parallel executors", "default": 1}, "cpu_cores_per_task": {"type": "integer", "maximum": 32.0, "minimum": 1.0, "title": "Cpu Cores Per Task", "description": "Cores per executor", "default": 1}, "ram_bytes_per_task": {"anyOf": [{"type": "string", "pattern": "^\\s*(\\d*\\.?\\d+)\\s*(\\w+)?"}, {"type": "integer", "minimum": 0.0}], "title": "Ram Bytes Per Task", "description": "RAM per executor", "default": 1073741824, "ge": 536870912, "le": 68719476736}}, "type": "object", "title": "Resources"}, "Resources-Output": {"properties": {"max_parallel_tasks": {"type": "integer", "maximum": 100.0, "minimum": 1.0, "title": "Max Parallel Tasks", "description": "Parallel executors", "default": 1}, "cpu_cores_per_task": {"type": "integer", "maximum": 32.0, "minimum": 1.0, "title": "Cpu Cores Per Task", "description": "Cores per executor", "default": 1}, "ram_bytes_per_task": {"type": "integer", "minimum": 0.0, "title": "Ram Bytes Per Task", "description": "RAM per executor", "default": 1073741824, "ge": 536870912, "le": 68719476736}}, "type": "object", "title": "Resources"}, "RunPageSchema": {"properties": {"meta": {"$ref": "#/components/schemas/MetaPageSchema"}, "items": {"items": {"$ref": "#/components/schemas/ShortRunSchema"}, "type": "array", "title": "Items"}}, "type": "object", "required": ["meta", "items"], "title": "RunPageSchema"}, "RunType": {"type": "string", "enum": ["MANUAL", "SCHEDULED"], "title": "RunType"}, "S3TransferSource": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}, {"$ref": "#/components/schemas/JSON"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "json": "#/components/schemas/JSON", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "s3", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "S3TransferSource"}, "S3TransferTarget": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "file_name_template": {"type": "string", "pattern": "^[\\w.{}-]+$", "title": "File Name Template", "description": "Template for file naming with required placeholders 'index' and 'extension'", "default": "{run_created_at}-{index}.{extension}"}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "s3", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "S3TransferTarget"}, "SFTPConnectionDataSchema": {"properties": {"host": {"type": "string", "title": "Host"}, "port": {"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0, "title": "Port", "default": 22}}, "type": "object", "required": ["host"], "title": "SFTPConnectionDataSchema"}, "SFTPTransferSource": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}, {"$ref": "#/components/schemas/JSON"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "json": "#/components/schemas/JSON", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "sftp", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "SFTPTransferSource"}, "SFTPTransferTarget": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "file_name_template": {"type": "string", "pattern": "^[\\w.{}-]+$", "title": "File Name Template", "description": "Template for file naming with required placeholders 'index' and 'extension'", "default": "{run_created_at}-{index}.{extension}"}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "sftp", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "SFTPTransferTarget"}, "SambaConnectionDataSchema": {"properties": {"host": {"type": "string", "title": "Host"}, "share": {"type": "string", "title": "Share"}, "port": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Port"}, "protocol": {"type": "string", "enum": ["SMB", "NetBIOS"], "title": "Protocol", "default": "SMB"}, "domain": {"type": "string", "title": "Domain", "default": ""}}, "type": "object", "required": ["host", "share"], "title": "SambaConnectionDataSchema"}, "SambaTransferSource": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}, {"$ref": "#/components/schemas/JSON"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "json": "#/components/schemas/JSON", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "samba", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "SambaTransferSource"}, "SambaTransferTarget": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "file_name_template": {"type": "string", "pattern": "^[\\w.{}-]+$", "title": "File Name Template", "description": "Template for file naming with required placeholders 'index' and 'extension'", "default": "{run_created_at}-{index}.{extension}"}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "samba", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "SambaTransferTarget"}, "ShortRunSchema": {"properties": {"transfer_id": {"type": "integer", "title": "Transfer Id", "description": "Transfer id"}, "id": {"type": "integer", "title": "Id", "description": "Run id"}, "started_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Started At"}, "ended_at": {"anyOf": [{"type": "string", "format": "date-time"}, {"type": "null"}], "title": "Ended At"}, "status": {"$ref": "#/components/schemas/Status"}, "log_url": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Log Url"}, "type": {"$ref": "#/components/schemas/RunType"}}, "type": "object", "required": ["transfer_id", "id", "status", "type"], "title": "ShortRunSchema"}, "Sql": {"properties": {"type": {"type": "string", "const": "sql", "title": "Type", "default": "sql"}, "query": {"type": "string", "title": "Query", "examples": ["SELECT col1, col2 FROM source WHERE col3 <= 20"]}, "dialect": {"type": "string", "const": "spark", "title": "Dialect", "description": "Static value for now", "default": "spark"}}, "type": "object", "required": ["query"], "title": "Sql"}, "Status": {"type": "string", "enum": ["CREATED", "STARTED", "FAILED", "SEND_STOP_SIGNAL", "STOPPED", "FINISHED"], "title": "Status"}, "TransferPageSchema": {"properties": {"meta": {"$ref": "#/components/schemas/MetaPageSchema"}, "items": {"items": {"$ref": "#/components/schemas/ReadTransferSchema"}, "type": "array", "title": "Items"}}, "type": "object", "required": ["meta", "items"], "title": "TransferPageSchema"}, "UpdateBasicAuthSchema": {"properties": {"type": {"type": "string", "const": "basic", "title": "Type", "description": "Auth type", "default": "basic"}, "user": {"type": "string", "title": "User"}, "password": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Password"}}, "type": "object", "required": ["user"], "title": "UpdateBasicAuthSchema"}, "UpdateClickhouseConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "clickhouse", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/ClickhouseConnectionDataSchema", "description": "Data required to connect to the database"}, "auth_data": {"$ref": "#/components/schemas/UpdateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdateClickhouseConnectionSchema"}, "UpdateFTPConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "ftp", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/FTPConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"$ref": "#/components/schemas/UpdateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdateFTPConnectionSchema"}, "UpdateFTPSConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "ftps", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/FTPSConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"$ref": "#/components/schemas/UpdateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdateFTPSConnectionSchema"}, "UpdateGroupSchema": {"properties": {"name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name"}, "description": {"type": "string", "title": "Description"}, "owner_id": {"type": "integer", "title": "Owner Id"}}, "type": "object", "required": ["name", "description", "owner_id"], "title": "UpdateGroupSchema"}, "UpdateHDFSConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "hdfs", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/HDFSConnectionDataSchema", "description": "Data required to connect to the HDFS cluster"}, "auth_data": {"$ref": "#/components/schemas/UpdateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdateHDFSConnectionSchema"}, "UpdateHiveConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "hive", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/HiveConnectionDataSchema", "description": "Data required to connect to the database"}, "auth_data": {"$ref": "#/components/schemas/UpdateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdateHiveConnectionSchema"}, "UpdateIcebergConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "iceberg", "title": "Type", "description": "Connection type"}, "connection_data": {"oneOf": [{"$ref": "#/components/schemas/IcebergRESTCatalogS3DirectConnectionDataSchema"}, {"$ref": "#/components/schemas/IcebergRESTCatalogS3DelegatedConnectionDataSchema"}], "title": "Connection Data", "description": "Data required to connect to REST catalog and to object storage", "discriminator": {"propertyName": "type", "mapping": {"iceberg_rest_s3_delegated": "#/components/schemas/IcebergRESTCatalogS3DelegatedConnectionDataSchema", "iceberg_rest_s3_direct": "#/components/schemas/IcebergRESTCatalogS3DirectConnectionDataSchema"}}}, "auth_data": {"oneOf": [{"$ref": "#/components/schemas/UpdateIcebergRESTCatalogBearerS3BasicAuthSchema"}, {"$ref": "#/components/schemas/UpdateIcebergRESTCatalogOAuth2ClientCredentialsS3BasicAuthSchema"}, {"$ref": "#/components/schemas/UpdateIcebergRESTCatalogBearerAuthSchema"}, {"$ref": "#/components/schemas/UpdateIcebergRESTCatalogOAuth2ClientCredentialsAuthSchema"}], "title": "Auth Data", "description": "Credentials for REST Catalog and object storage", "discriminator": {"propertyName": "type", "mapping": {"iceberg_rest_bearer": "#/components/schemas/UpdateIcebergRESTCatalogBearerAuthSchema", "iceberg_rest_bearer_s3_basic": "#/components/schemas/UpdateIcebergRESTCatalogBearerS3BasicAuthSchema", "iceberg_rest_oauth2_client_credentials": "#/components/schemas/UpdateIcebergRESTCatalogOAuth2ClientCredentialsAuthSchema", "iceberg_rest_oauth2_client_credentials_s3_basic": "#/components/schemas/UpdateIcebergRESTCatalogOAuth2ClientCredentialsS3BasicAuthSchema"}}}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdateIcebergConnectionSchema"}, "UpdateIcebergRESTCatalogBearerAuthSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_bearer", "title": "Type", "description": "Auth type", "default": "iceberg_rest_bearer"}, "rest_catalog_token": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Rest Catalog Token"}}, "type": "object", "title": "UpdateIcebergRESTCatalogBearerAuthSchema"}, "UpdateIcebergRESTCatalogBearerS3BasicAuthSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_bearer_s3_basic", "title": "Type", "description": "Auth type", "default": "iceberg_rest_bearer_s3_basic"}, "s3_access_key": {"type": "string", "title": "S3 Access Key"}, "rest_catalog_token": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Rest Catalog Token"}, "s3_secret_key": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "S3 Secret Key"}}, "type": "object", "required": ["s3_access_key"], "title": "UpdateIcebergRESTCatalogBearerS3BasicAuthSchema"}, "UpdateIcebergRESTCatalogOAuth2ClientCredentialsAuthSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_oauth2_client_credentials", "title": "Type", "description": "Auth type", "default": "iceberg_rest_oauth2_client_credentials"}, "rest_catalog_oauth2_client_id": {"type": "string", "title": "Rest Catalog Oauth2 Client Id"}, "rest_catalog_oauth2_scopes": {"items": {"type": "string"}, "type": "array", "title": "Rest Catalog Oauth2 Scopes"}, "rest_catalog_oauth2_resource": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Resource"}, "rest_catalog_oauth2_audience": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Audience"}, "rest_catalog_oauth2_token_endpoint": {"anyOf": [{"type": "string", "minLength": 1, "format": "uri"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Token Endpoint"}, "rest_catalog_oauth2_client_secret": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Rest Catalog Oauth2 Client Secret"}}, "type": "object", "required": ["rest_catalog_oauth2_client_id"], "title": "UpdateIcebergRESTCatalogOAuth2ClientCredentialsAuthSchema"}, "UpdateIcebergRESTCatalogOAuth2ClientCredentialsS3BasicAuthSchema": {"properties": {"type": {"type": "string", "const": "iceberg_rest_oauth2_client_credentials_s3_basic", "title": "Type", "description": "Auth type", "default": "iceberg_rest_oauth2_client_credentials_s3_basic"}, "rest_catalog_oauth2_client_id": {"type": "string", "title": "Rest Catalog Oauth2 Client Id"}, "rest_catalog_oauth2_scopes": {"items": {"type": "string"}, "type": "array", "title": "Rest Catalog Oauth2 Scopes"}, "rest_catalog_oauth2_resource": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Resource"}, "rest_catalog_oauth2_audience": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Audience"}, "rest_catalog_oauth2_token_endpoint": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Rest Catalog Oauth2 Token Endpoint"}, "s3_access_key": {"type": "string", "title": "S3 Access Key"}, "rest_catalog_oauth2_client_secret": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Rest Catalog Oauth2 Client Secret"}, "s3_secret_key": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "S3 Secret Key"}}, "type": "object", "required": ["rest_catalog_oauth2_client_id", "s3_access_key"], "title": "UpdateIcebergRESTCatalogOAuth2ClientCredentialsS3BasicAuthSchema"}, "UpdateMSSQLConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "mssql", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/MSSQLConnectionDataSchema", "description": "Data required to connect to the database"}, "auth_data": {"$ref": "#/components/schemas/UpdateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdateMSSQLConnectionSchema"}, "UpdateMySQLConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "mysql", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/MySQLConnectionDataSchema", "description": "Data required to connect to the database"}, "auth_data": {"$ref": "#/components/schemas/UpdateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdateMySQLConnectionSchema"}, "UpdateOracleConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "oracle", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/OracleConnectionDataSchema", "description": "Data required to connect to the database"}, "auth_data": {"$ref": "#/components/schemas/UpdateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdateOracleConnectionSchema"}, "UpdatePostgresConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "postgres", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/PostgresConnectionDataSchema", "description": "Data required to connect to the database"}, "auth_data": {"$ref": "#/components/schemas/UpdateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdatePostgresConnectionSchema"}, "UpdateQueueSchema": {"properties": {"name": {"type": "string", "maxLength": 128, "minLength": 3, "pattern": "^[ -~]+$", "title": "Name"}, "description": {"type": "string", "title": "Description", "default": ""}}, "type": "object", "required": ["name"], "title": "UpdateQueueSchema"}, "UpdateS3AuthSchema": {"properties": {"type": {"type": "string", "const": "s3", "title": "Type", "description": "Auth type", "default": "s3"}, "access_key": {"type": "string", "title": "Access Key"}, "secret_key": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Secret Key"}}, "type": "object", "required": ["access_key"], "title": "UpdateS3AuthSchema"}, "UpdateS3ConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "s3", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/CreateS3ConnectionDataSchema", "description": "Data required to connect to the S3 bucket"}, "auth_data": {"$ref": "#/components/schemas/UpdateS3AuthSchema", "description": "S3 bucket credentials"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdateS3ConnectionSchema"}, "UpdateSFTPConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "sftp", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/SFTPConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"$ref": "#/components/schemas/UpdateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdateSFTPConnectionSchema"}, "UpdateSambaAuthSchema": {"properties": {"type": {"type": "string", "const": "samba", "title": "Type", "description": "Auth type", "default": "samba"}, "user": {"type": "string", "title": "User"}, "auth_type": {"type": "string", "enum": ["NTLMv1", "NTLMv2"], "title": "Auth Type", "default": "NTLMv2"}, "password": {"anyOf": [{"type": "string", "format": "password", "writeOnly": true}, {"type": "null"}], "title": "Password"}}, "type": "object", "required": ["user"], "title": "UpdateSambaAuthSchema"}, "UpdateSambaConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "samba", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/SambaConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"$ref": "#/components/schemas/UpdateSambaAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdateSambaConnectionSchema"}, "UpdateWebDAVConnectionSchema": {"properties": {"group_id": {"type": "integer", "title": "Group Id", "description": "Group id the connections is bound to"}, "name": {"type": "string", "maxLength": 128, "minLength": 3, "title": "Name", "description": "Connection name"}, "description": {"type": "string", "title": "Description", "description": "Human-readable description"}, "type": {"type": "string", "const": "webdav", "title": "Type", "description": "Connection type"}, "connection_data": {"$ref": "#/components/schemas/WebDAVConnectionDataSchema", "description": "Data required to connect to the remote server"}, "auth_data": {"$ref": "#/components/schemas/UpdateBasicAuthSchema", "description": "Credentials for authorization"}}, "type": "object", "required": ["group_id", "name", "description", "type", "connection_data", "auth_data"], "title": "UpdateWebDAVConnectionSchema"}, "UserPageSchema": {"properties": {"meta": {"$ref": "#/components/schemas/MetaPageSchema"}, "items": {"items": {"$ref": "#/components/schemas/ReadUserSchema"}, "type": "array", "title": "Items"}}, "type": "object", "required": ["meta", "items"], "title": "UserPageSchema"}, "UserPageSchemaAsGroupMember": {"properties": {"meta": {"$ref": "#/components/schemas/MetaPageSchema"}, "items": {"items": {"$ref": "#/components/schemas/ReadGroupMember"}, "type": "array", "title": "Items"}}, "type": "object", "required": ["meta", "items"], "title": "UserPageSchemaAsGroupMember"}, "WebDAVConnectionDataSchema": {"properties": {"host": {"type": "string", "title": "Host"}, "port": {"anyOf": [{"type": "integer", "maximum": 65535.0, "exclusiveMinimum": 0.0}, {"type": "null"}], "title": "Port"}, "protocol": {"type": "string", "enum": ["http", "https"], "title": "Protocol", "default": "https"}}, "type": "object", "required": ["host"], "title": "WebDAVConnectionDataSchema"}, "WebDAVTransferSource": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}, {"$ref": "#/components/schemas/JSON"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "json": "#/components/schemas/JSON", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "webdav", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "WebDAVTransferSource"}, "WebDAVTransferTarget": {"properties": {"directory_path": {"type": "string", "pattern": "^/[\\w\\d ]+(/[\\w\\d ]+)*$", "title": "Directory Path", "description": "Absolute path to directory"}, "file_format": {"oneOf": [{"$ref": "#/components/schemas/CSV"}, {"$ref": "#/components/schemas/JSONLine"}, {"$ref": "#/components/schemas/Excel"}, {"$ref": "#/components/schemas/XML"}, {"$ref": "#/components/schemas/ORC"}, {"$ref": "#/components/schemas/Parquet"}], "title": "File Format", "discriminator": {"propertyName": "type", "mapping": {"csv": "#/components/schemas/CSV", "excel": "#/components/schemas/Excel", "jsonline": "#/components/schemas/JSONLine", "orc": "#/components/schemas/ORC", "parquet": "#/components/schemas/Parquet", "xml": "#/components/schemas/XML"}}}, "file_name_template": {"type": "string", "pattern": "^[\\w.{}-]+$", "title": "File Name Template", "description": "Template for file naming with required placeholders 'index' and 'extension'", "default": "{run_created_at}-{index}.{extension}"}, "options": {"additionalProperties": true, "type": "object", "title": "Options"}, "type": {"type": "string", "const": "webdav", "title": "Type"}}, "type": "object", "required": ["directory_path", "file_format", "type"], "title": "WebDAVTransferTarget"}, "XML": {"properties": {"type": {"type": "string", "const": "xml", "title": "Type", "default": "xml"}, "root_tag": {"type": "string", "title": "Root Tag"}, "row_tag": {"type": "string", "title": "Row Tag"}, "compression": {"$ref": "#/components/schemas/XMLCompression", "default": "gzip"}}, "type": "object", "required": ["root_tag", "row_tag"], "title": "XML"}, "XMLCompression": {"type": "string", "enum": ["none", "bzip2", "gzip", "lz4", "snappy"], "title": "XMLCompression"}}, "securitySchemes": {"OAuth2PasswordBearer": {"type": "oauth2", "description": "Perform authentication using configured AuthProvider", "flows": {"password": {"scopes": {}, "tokenUrl": "v1/auth/token"}}}, "HTTPBearer": {"type": "http", "description": "Perform authentication using Bearer token", "scheme": "bearer"}}}} \ No newline at end of file diff --git a/mddocs/_static/redoc.html b/mddocs/docs/_static/redoc.html similarity index 83% rename from mddocs/_static/redoc.html rename to mddocs/docs/_static/redoc.html index b9f59a07..6dcddea5 100644 --- a/mddocs/_static/redoc.html +++ b/mddocs/docs/_static/redoc.html @@ -7,7 +7,7 @@ - + @@ -22,7 +22,7 @@ - + diff --git a/mddocs/_static/swagger.html b/mddocs/docs/_static/swagger.html similarity index 85% rename from mddocs/_static/swagger.html rename to mddocs/docs/_static/swagger.html index ef34cf30..e14c0ded 100644 --- a/mddocs/_static/swagger.html +++ b/mddocs/docs/_static/swagger.html @@ -9,7 +9,7 @@ /> SwaggerUI - +
@@ -17,7 +17,7 @@