1
0
mirror of synced 2025-12-30 12:04:43 -05:00
Files
airbyte/docs/reference/api/config.yaml
Marius Posta 1ab6cfed9b docs: move airbyte api yaml from CDK to docs (#36616)
Follows up on #36610

We don't want the docs to depend on a file located in the java CDK that the java CDK doesn't even use.
2024-03-30 05:30:49 -07:00

6144 lines
189 KiB
YAML

openapi: 3.0.0
info:
description: |
Airbyte Configuration API
[https://airbyte.io](https://airbyte.io).
The Configuration API is an internal Airbyte API that is designed for communications between different Airbyte components.
* Its main purpose is to enable the Airbyte Engineering team to configure the internal state of [Airbyte Cloud](https://airbyte.com/airbyte-cloud)
* It is also sometimes used by OSS users to configure their own Self-Hosted Airbyte deployment (internal state, etc)
WARNING
* Airbyte does NOT have active commitments to support this API long-term.
* OSS users can utilize the Configuration API, but at their own risk.
* This API is utilized internally by the Airbyte Engineering team and may be modified in the future if the need arises.
* Modifications by the Airbyte Engineering team could create breaking changes and OSS users would need to update their code to catch up to any backwards incompatible changes in the API.
This API is a collection of HTTP RPC-style methods. While it is not a REST API, those familiar with REST should find the conventions of this API recognizable.
Here are some conventions that this API follows:
* All endpoints are http POST methods.
* All endpoints accept data via `application/json` request bodies. The API does not accept any data via query params.
* The naming convention for endpoints is: localhost:8000/api/{VERSION}/{METHOD_FAMILY}/{METHOD_NAME} e.g. `localhost:8000/api/v1/connections/create`.
* For all `update` methods, the whole object must be passed in, even the fields that did not change.
Authentication (OSS):
* When authenticating to the Configuration API, you must use Basic Authentication by setting the Authentication Header to Basic and base64 encoding the username and password (which are `airbyte` and `password` by default - so base64 encoding `airbyte:password` results in `YWlyYnl0ZTpwYXNzd29yZA==`). So the full header reads `'Authorization': "Basic YWlyYnl0ZTpwYXNzd29yZA=="`
version: "1.0.0"
title: Airbyte Configuration API
contact:
email: contact@airbyte.io
license:
name: MIT
url: "https://opensource.org/licenses/MIT"
externalDocs:
description: Find out more about Airbyte
url: "https://airbyte.io"
servers:
- url: "http://localhost:8000/api"
tags:
- name: workspace
description: Workspace related resources.
- name: source_definition
description: SourceDefinition related resources.
- name: source_definition_specification
description: SourceDefinition specification related resources.
- name: source
description: Source related resources.
- name: destination_definition
description: DestinationDefinition related resources.
- name: destination_definition_specification
description: DestinationDefinitionSpecification related resources.
- name: destination
description: Destination related resources.
- name: connection
description: Connection between sources and destinations.
- name: destination_oauth
description: Source OAuth related resources to delegate access from user.
- name: source_oauth
description: Source OAuth related resources to delegate access from user.
- name: web_backend
description: |
Endpoints for the Airbyte web application. Those APIs should not be called outside the web application implementation and are not
guaranteeing any backwards compatibility.
- name: health
description: Healthchecks
- name: deployment
description: Export/Import Airbyte Configuration and Database resources.
- name: attempt
description: Interactions with attempt related resources.
- name: state
description: Interactions with state related resources.
paths:
/v1/workspaces/create:
post:
tags:
- workspace
summary: Creates a workspace
operationId: createWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceCreate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/workspaces/delete:
post:
tags:
- workspace
summary: Deletes a workspace
operationId: deleteWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceIdRequestBody"
required: true
responses:
"204":
description: The resource was deleted successfully.
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/workspaces/list:
post:
tags:
- workspace
summary: List all workspaces registered in the current Airbyte deployment
operationId: listWorkspaces
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceReadList"
/v1/workspaces/get:
post:
tags:
- workspace
summary: Find workspace by ID
operationId: getWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/workspaces/get_by_slug:
post:
tags:
- workspace
summary: Find workspace by slug
operationId: getWorkspaceBySlug
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SlugRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/workspaces/get_by_connection_id:
post:
tags:
- workspace
summary: Find workspace by connection id
operationId: getWorkspaceByConnectionId
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/workspaces/update:
post:
tags:
- workspace
summary: Update workspace state
operationId: updateWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceUpdate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/workspaces/update_name:
post:
tags:
- workspace
summary: Update workspace name
operationId: updateWorkspaceName
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceUpdateName"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/workspaces/tag_feedback_status_as_done:
post:
tags:
- workspace
summary: Update workspace feedback state
operationId: updateWorkspaceFeedback
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceGiveFeedback"
required: true
responses:
"204":
description: The feedback state has been properly updated
"404":
$ref: "#/components/responses/NotFoundResponse"
/v1/notifications/try:
post:
tags:
- notifications
summary: Try sending a notifications
operationId: tryNotificationConfig
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/Notification"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/NotificationRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/source_definitions/update:
post:
tags:
- source_definition
summary: Update a sourceDefinition
operationId: updateSourceDefinition
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionUpdate"
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/source_definitions/list:
post:
tags:
- source_definition
summary: List all the sourceDefinitions the current Airbyte deployment is configured to use
operationId: listSourceDefinitions
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionReadList"
/v1/source_definitions/list_latest:
post:
tags:
- source_definition
summary: List the latest sourceDefinitions Airbyte supports
description: Guaranteed to retrieve the latest information on supported sources.
operationId: listLatestSourceDefinitions
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionReadList"
/v1/source_definitions/get:
post:
tags:
- source_definition
summary: Get source
operationId: getSourceDefinition
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/source_definitions/delete:
post:
tags:
- source_definition
summary: Delete a source definition
operationId: deleteSourceDefinition
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionIdRequestBody"
required: true
responses:
"204":
description: The resource was deleted successfully.
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/source_definitions/list_private:
post:
tags:
- source_definition
summary:
List all private, non-custom sourceDefinitions, and for each indicate whether the given workspace has a grant for using the definition. Used
by admins to view and modify a given workspace's grants.
operationId: listPrivateSourceDefinitions
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceIdRequestBody"
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/PrivateSourceDefinitionReadList"
/v1/source_definitions/list_for_workspace:
post:
tags:
- source_definition
summary: List all the sourceDefinitions the given workspace is configured to use
operationId: listSourceDefinitionsForWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceIdRequestBody"
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionReadList"
/v1/source_definitions/create_custom:
post:
tags:
- source_definition
summary: Creates a custom sourceDefinition for the given workspace
operationId: createCustomSourceDefinition
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CustomSourceDefinitionCreate"
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/source_definitions/get_for_workspace:
post:
tags:
- source_definition
summary: Get a sourceDefinition that is configured for the given workspace
operationId: getSourceDefinitionForWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionIdWithWorkspaceId"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/source_definitions/grant_definition:
post:
tags:
- source_definition
summary: grant a private, non-custom sourceDefinition to a given workspace
operationId: grantSourceDefinitionToWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionIdWithWorkspaceId"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/PrivateSourceDefinitionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/source_definitions/revoke_definition:
post:
tags:
- source_definition
summary: revoke a grant to a private, non-custom sourceDefinition from a given workspace
operationId: revokeSourceDefinitionFromWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionIdWithWorkspaceId"
required: true
responses:
"204":
description: The resource was deleted successfully.
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/source_definition_specifications/get:
post:
tags:
- source_definition_specification
summary: Get specification for a SourceDefinition.
operationId: getSourceDefinitionSpecification
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionIdWithWorkspaceId"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionSpecificationRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/source_definition_specifications/get_for_source:
post:
tags:
- source_definition_specification
summary: Get specification for a source.
operationId: getSpecificationForSourceId
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionSpecificationRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/declarative_source_definitions/create_manifest:
post:
tags:
- declarative_source_definitions
summary: Create a declarative manifest to be used by the specified source definition
operationId: createDeclarativeSourceDefinitionManifest
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DeclarativeSourceDefinitionCreateManifestRequestBody"
required: true
responses:
"201":
description: Successful operation
"400":
description: Definition is not declarative source
"404":
$ref: "#/components/responses/NotFoundResponse"
"409":
description: Version already exists for definition id
/v1/declarative_source_definitions/update_active_manifest:
post:
tags:
- declarative_source_definitions
summary: Update the declarative manifest version for a source
operationId: updateDeclarativeManifestVersion
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/UpdateActiveManifestRequestBody"
required: true
responses:
"204":
description: Successful operation
"404":
$ref: "#/components/responses/NotFoundResponse"
/v1/declarative_source_definitions/list_manifests:
post:
tags:
- declarative_source_definitions
summary: List all available declarative manifest versions of a declarative source definition
operationId: listDeclarativeManifests
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ListDeclarativeManifestsRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DeclarativeManifestsReadList"
"400":
description: Definition is not declarative source
"404":
$ref: "#/components/responses/NotFoundResponse"
/v1/connector_builder_projects/create:
post:
tags:
- connector_builder_project
summary: Create new connector builder project
operationId: createConnectorBuilderProject
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectorBuilderProjectWithWorkspaceId"
required: true
responses:
"201":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectorBuilderProjectIdWithWorkspaceId"
/v1/connector_builder_projects/publish:
post:
tags:
- connector_builder_project
summary: Publish a connector to the workspace
operationId: publishConnectorBuilderProject
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectorBuilderPublishRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDefinitionIdBody"
/v1/connector_builder_projects/update:
post:
tags:
- connector_builder_project
summary: Update connector builder project
operationId: updateConnectorBuilderProject
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ExistingConnectorBuilderProjectWithWorkspaceId"
required: true
responses:
"204":
description: Successful operation
/v1/connector_builder_projects/delete:
post:
tags:
- connector_builder_project
summary: Deletes connector builder project
operationId: deleteConnectorBuilderProject
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectorBuilderProjectIdWithWorkspaceId"
required: true
responses:
"204":
description: Successful operation
/v1/connector_builder_projects/list:
post:
tags:
- connector_builder_project
summary: List connector builder projects for workspace
operationId: listConnectorBuilderProjects
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectorBuilderProjectReadList"
/v1/connector_builder_projects/get_with_manifest:
post:
tags:
- connector_builder_project
summary: Get a connector builder project with draft manifest
operationId: getConnectorBuilderProject
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectorBuilderProjectIdWithWorkspaceId"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectorBuilderProjectRead"
/v1/sources/create:
post:
tags:
- source
summary: Create a source
operationId: createSource
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceCreate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/sources/update:
post:
tags:
- source
summary: Update a source
operationId: updateSource
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceUpdate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/sources/partial_update:
post:
tags:
- source
summary: Partially update a source
operationId: partialUpdateSource
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PartialSourceUpdate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/sources/list:
post:
tags:
- source
summary: List sources for workspace
description: List sources for workspace. Does not return deleted sources.
operationId: listSourcesForWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceReadList"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/sources/get:
post:
tags:
- source
summary: Get source
operationId: getSource
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/sources/most_recent_source_actor_catalog:
post:
tags:
- source
summary: Get most recent ActorCatalog for source
operationId: getMostRecentSourceActorCatalog
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ActorCatalogWithUpdatedAt"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/sources/search:
post:
tags:
- source
summary: Search sources
operationId: searchSources
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceSearch"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceReadList"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/sources/clone:
post:
tags:
- source
summary: Clone source
operationId: cloneSource
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceCloneRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/sources/delete:
post:
tags:
- source
summary: Delete a source
operationId: deleteSource
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceIdRequestBody"
required: true
responses:
"204":
description: The resource was deleted successfully.
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/sources/check_connection:
post:
tags:
- source
summary: Check connection to the source
operationId: checkConnectionToSource
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/CheckConnectionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/sources/check_connection_for_update:
post:
tags:
- source
summary: Check connection for a proposed update to a source
operationId: checkConnectionToSourceForUpdate
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceUpdate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/CheckConnectionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/sources/discover_schema:
post:
tags:
- source
summary: Discover the schema catalog of the source
operationId: discoverSchemaForSource
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDiscoverSchemaRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDiscoverSchemaRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/sources/apply_schema_changes:
post:
tags:
- source
summary:
Auto propagate the change on a catalog to a catalog saved in the DB. It will fetch all the connections linked to
a source id and apply the provided diff to their catalog.
operationId: applySchemaChangeForSource
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceAutoPropagateChange"
required: true
responses:
"204":
description: The schema was properly auto propagate
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/sources/write_discover_catalog_result:
post:
tags:
- source
- internal
summary: Should only called from worker, to write result from discover activity back to DB.
operationId: writeDiscoverCatalogResult
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDiscoverSchemaWriteRequestBody"
required: true
responses:
"200":
description: Successful Operation
content:
application/json:
schema:
$ref: "#/components/schemas/DiscoverCatalogResult"
/v1/destination_definitions/update:
post:
tags:
- destination_definition
summary: Update destinationDefinition
operationId: updateDestinationDefinition
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionUpdate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destination_definitions/list:
post:
tags:
- destination_definition
summary: List all the destinationDefinitions the current Airbyte deployment is configured to use
operationId: listDestinationDefinitions
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionReadList"
/v1/destination_definitions/list_latest:
post:
tags:
- destination_definition
summary: List the latest destinationDefinitions Airbyte supports
description: Guaranteed to retrieve the latest information on supported destinations.
operationId: listLatestDestinationDefinitions
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionReadList"
/v1/destination_definitions/get:
post:
tags:
- destination_definition
summary: Get destinationDefinition
operationId: getDestinationDefinition
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destination_definitions/delete:
post:
tags:
- destination_definition
summary: Delete a destination definition
operationId: deleteDestinationDefinition
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionIdRequestBody"
required: true
responses:
"204":
description: The resource was deleted successfully.
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destination_definitions/list_private:
post:
tags:
- destination_definition
summary:
List all private, non-custom destinationDefinitions, and for each indicate whether the given workspace has a grant for using the
definition. Used by admins to view and modify a given workspace's grants.
operationId: listPrivateDestinationDefinitions
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceIdRequestBody"
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/PrivateDestinationDefinitionReadList"
/v1/destination_definitions/list_for_workspace:
post:
tags:
- destination_definition
summary: List all the destinationDefinitions the given workspace is configured to use
operationId: listDestinationDefinitionsForWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceIdRequestBody"
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionReadList"
/v1/destination_definitions/create_custom:
post:
tags:
- destination_definition
summary: Creates a custom destinationDefinition for the given workspace
operationId: createCustomDestinationDefinition
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CustomDestinationDefinitionCreate"
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destination_definitions/get_for_workspace:
post:
tags:
- destination_definition
summary: Get a destinationDefinition that is configured for the given workspace
operationId: getDestinationDefinitionForWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionIdWithWorkspaceId"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destination_definitions/grant_definition:
post:
tags:
- destination_definition
summary: grant a private, non-custom destinationDefinition to a given workspace
operationId: grantDestinationDefinitionToWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionIdWithWorkspaceId"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/PrivateDestinationDefinitionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destination_definitions/revoke_definition:
post:
tags:
- destination_definition
summary: revoke a grant to a private, non-custom destinationDefinition from a given workspace
operationId: revokeDestinationDefinitionFromWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionIdWithWorkspaceId"
required: true
responses:
"204":
description: The resource was deleted successfully.
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destination_definition_specifications/get:
post:
tags:
- destination_definition_specification
summary: Get specification for a destinationDefinition
operationId: getDestinationDefinitionSpecification
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionIdWithWorkspaceId"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionSpecificationRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destination_definition_specifications/get_for_destination:
post:
tags:
- destination_definition_specification
summary: Get specification for a destination
operationId: getSpecificationForDestinationId
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationDefinitionSpecificationRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
# DESTINATIONS
/v1/destinations/create:
post:
tags:
- destination
summary: Create a destination
operationId: createDestination
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationCreate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destinations/update:
post:
tags:
- destination
summary: Update a destination
operationId: updateDestination
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationUpdate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destinations/partial_update:
post:
tags:
- destination
summary: Update a destination partially
operationId: partialUpdateDestination
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/PartialDestinationUpdate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destinations/list:
post:
tags:
- destination
summary: List configured destinations for a workspace
operationId: listDestinationsForWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationReadList"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destinations/get:
post:
tags:
- destination
summary: Get configured destination
operationId: getDestination
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destinations/search:
post:
tags:
- destination
summary: Search destinations
operationId: searchDestinations
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationSearch"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationReadList"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destinations/check_connection:
post:
tags:
- destination
summary: Check connection to the destination
operationId: checkConnectionToDestination
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/CheckConnectionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destinations/check_connection_for_update:
post:
tags:
- destination
summary: Check connection for a proposed update to a destination
operationId: checkConnectionToDestinationForUpdate
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationUpdate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/CheckConnectionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destinations/delete:
post:
tags:
- destination
summary: Delete the destination
operationId: deleteDestination
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationIdRequestBody"
required: true
responses:
"204":
description: The resource was deleted successfully.
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destinations/clone:
post:
tags:
- destination
summary: Clone destination
operationId: cloneDestination
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationCloneRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/connections/create:
post:
tags:
- connection
summary: Create a connection between a source and a destination
operationId: createConnection
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionCreate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/connections/update:
post:
tags:
- connection
summary: Update a connection
description: |
Apply a patch-style update to a connection. Only fields present on the update request body will be updated.
Note that if a catalog is present in the request body, the connection's entire catalog will be replaced
with the catalog from the request. This means that to modify a single stream, the entire new catalog
containing the updated stream needs to be sent.
operationId: updateConnection
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionUpdate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/connections/list:
post:
tags:
- connection
summary: Returns all connections for a workspace.
description: List connections for workspace. Does not return deleted connections.
operationId: listConnectionsForWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionReadList"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/connections/list_all:
post:
tags:
- connection
summary: Returns all connections for a workspace, including deleted connections.
description: List connections for workspace, including deleted connections.
operationId: listAllConnectionsForWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WorkspaceIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionReadList"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/connections/get:
post:
tags:
- connection
summary: Get a connection
operationId: getConnection
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/connections/list_by_actor_definition:
post:
tags:
- connection
summary: List all connections that use the provided actor definition
operationId: listConnectionsByActorDefinition
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ActorDefinitionRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionReadList"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/state/get:
post:
tags:
- state
summary: Fetch the current state for a connection.
operationId: getState
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionState"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/state/create_or_update:
post:
tags:
- state
- internal
summary: Create or update the state for a connection.
operationId: createOrUpdateState
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionStateCreateOrUpdate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionState"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/connections/search:
post:
tags:
- connection
summary: Search connections
operationId: searchConnections
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionSearch"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionReadList"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/connections/delete:
post:
tags:
- connection
summary: Delete a connection
operationId: deleteConnection
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionIdRequestBody"
required: true
responses:
"204":
description: The resource was deleted successfully.
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/connections/sync:
post:
tags:
- connection
summary: Trigger a manual sync of the connection
operationId: syncConnection
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/JobInfoRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/connections/reset:
post:
tags:
- connection
summary: Reset the data for the connection. Deletes data generated by the connection in the destination. Resets any cursors back to initial state.
operationId: resetConnection
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/JobInfoRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/connections/reset/stream:
post:
tags:
- connection
summary: Reset the data for a specific stream in the connection. Deletes data generated by the stream in the destination. Resets any cursors back to initial state.
operationId: resetConnectionStream
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionStreamRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/JobInfoRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/operations/check:
post:
tags:
- operation
summary: Check if an operation to be created is valid
operationId: checkOperation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/OperatorConfiguration"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/CheckOperationRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/operations/create:
post:
tags:
- operation
summary: Create an operation to be applied as part of a connection pipeline
operationId: createOperation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/OperationCreate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/OperationRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/operations/update:
post:
tags:
- operation
summary: Update an operation
operationId: updateOperation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/OperationUpdate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/OperationRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/operations/list:
post:
tags:
- operation
summary: Returns all operations for a connection.
description: List operations for connection.
operationId: listOperationsForConnection
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/OperationReadList"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/operations/get:
post:
tags:
- operation
summary: Returns an operation
operationId: getOperation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/OperationIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/OperationRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/operations/delete:
post:
tags:
- operation
summary: Delete an operation
operationId: deleteOperation
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/OperationIdRequestBody"
required: true
responses:
"204":
description: The resource was deleted successfully.
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/scheduler/sources/check_connection:
post:
tags:
- scheduler
summary: Run check connection for a given source configuration
operationId: executeSourceCheckConnection
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceCoreConfig"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/CheckConnectionRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/scheduler/sources/discover_schema:
post:
tags:
- scheduler
summary: Run discover schema for a given source a source configuration
operationId: executeSourceDiscoverSchema
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceCoreConfig"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/SourceDiscoverSchemaRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/scheduler/destinations/check_connection:
post:
tags:
- scheduler
summary: Run check connection for a given destination configuration
operationId: executeDestinationCheckConnection
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationCoreConfig"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/CheckConnectionRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/source_oauths/oauth_params/create:
post:
tags:
- source_oauth
summary: >
Sets instancewide variables to be used for the oauth flow when creating this source. When set, these variables will be injected
into a connector's configuration before any interaction with the connector image itself. This enables running oauth flows with
consistent variables e.g: the company's Google Ads developer_token, client_id, and client_secret without the user having to know
about these variables.
operationId: setInstancewideSourceOauthParams
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SetInstancewideSourceOauthParamsRequestBody"
required: true
responses:
"200":
description: Successful
"400":
$ref: "#/components/responses/ExceptionResponse"
"404":
$ref: "#/components/responses/NotFoundResponse"
/v1/source_oauths/get_consent_url:
post:
tags:
- source_oauth
summary: Given a source connector definition ID, return the URL to the consent screen where to redirect the user to.
operationId: getSourceOAuthConsent
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SourceOauthConsentRequest"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/OAuthConsentRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/source_oauths/complete_oauth:
post:
tags:
- source_oauth
summary: Given a source def ID generate an access/refresh token etc.
operationId: completeSourceOAuth
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CompleteSourceOauthRequest"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/CompleteOAuthResponse"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/source_oauths/revoke:
post:
tags:
- source_oauth
summary: Given a source definition ID and workspace ID revoke access/refresh token etc.
operationId: revokeSourceOAuthTokens
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/RevokeSourceOauthTokensRequest"
required: true
responses:
"200":
description: Successful operation
"400":
$ref: "#/components/responses/ExceptionResponse"
"404":
$ref: "#/components/responses/NotFoundResponse"
/v1/destination_oauths/get_consent_url:
post:
tags:
- destination_oauth
summary: Given a destination connector definition ID, return the URL to the consent screen where to redirect the user to.
operationId: getDestinationOAuthConsent
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/DestinationOauthConsentRequest"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/OAuthConsentRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destination_oauths/complete_oauth:
post:
tags:
- destination_oauth
summary: Given a destination def ID generate an access/refresh token etc.
operationId: completeDestinationOAuth
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/CompleteDestinationOAuthRequest"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/CompleteOAuthResponse"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/destination_oauths/oauth_params/create:
post:
tags:
- destination_oauth
summary: >
Sets instancewide variables to be used for the oauth flow when creating this destination. When set, these variables will be injected
into a connector's configuration before any interaction with the connector image itself. This enables running oauth flows with
consistent variables e.g: the company's Google Ads developer_token, client_id, and client_secret without the user having to know
about these variables.
operationId: setInstancewideDestinationOauthParams
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SetInstancewideDestinationOauthParamsRequestBody"
required: true
responses:
"200":
description: Successful
"400":
$ref: "#/components/responses/ExceptionResponse"
"404":
$ref: "#/components/responses/NotFoundResponse"
/v1/web_backend/check_updates:
post:
tags:
- web_backend
summary: Returns a summary of source and destination definitions that could be updated.
operationId: webBackendCheckUpdates
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WebBackendCheckUpdatesRead"
/v1/web_backend/connections/list:
post:
tags:
- web_backend
summary: Returns all non-deleted connections for a workspace.
operationId: webBackendListConnectionsForWorkspace
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WebBackendConnectionListRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WebBackendConnectionReadList"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/web_backend/connections/get:
post:
tags:
- web_backend
summary: Get a connection
operationId: webBackendGetConnection
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WebBackendConnectionRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WebBackendConnectionRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/web_backend/connections/create:
post:
tags:
- web_backend
summary: Create a connection
operationId: webBackendCreateConnection
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WebBackendConnectionCreate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WebBackendConnectionRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/web_backend/connections/update:
post:
tags:
- web_backend
summary: Update a connection
description: |
Apply a patch-style update to a connection. Only fields present on the update request body will be updated.
Any operations that lack an ID will be created. Then, the newly created operationId will be applied to the
connection along with the rest of the operationIds in the request body.
Apply a patch-style update to a connection. Only fields present on the update request body will be updated.
Note that if a catalog is present in the request body, the connection's entire catalog will be replaced
with the catalog from the request. This means that to modify a single stream, the entire new catalog
containing the updated stream needs to be sent.
operationId: webBackendUpdateConnection
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WebBackendConnectionUpdate"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WebBackendConnectionRead"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/web_backend/state/get_type:
post:
tags:
- web_backend
summary: Fetch the current state type for a connection.
operationId: getStateType
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionStateType"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/web_backend/workspace/state:
post:
tags:
- web_backend
summary: Returns the current state of a workspace
operationId: webBackendGetWorkspaceState
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/WebBackendWorkspaceState"
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WebBackendWorkspaceStateResult"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/web_backend/geographies/list:
post:
tags:
- web_backend
description: Returns all available geographies in which a data sync can run.
summary: |
Returns available geographies can be selected to run data syncs in a particular geography.
The 'auto' entry indicates that the sync will be automatically assigned to a geography according
to the platform default behavior. Entries other than 'auto' are two-letter country codes that
follow the ISO 3166-1 alpha-2 standard.
operationId: webBackendListGeographies
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/WebBackendGeographiesListResult"
/v1/jobs/list:
post:
tags:
- jobs
summary: Returns recent jobs for a connection. Jobs are returned in descending order by createdAt.
operationId: listJobsFor
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/JobListRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/JobReadList"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/jobs/get:
post:
tags:
- jobs
summary: Get information about a job
operationId: getJobInfo
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/JobIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/JobInfoRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/jobs/get_last_replication_job:
post:
tags:
- jobs
operationId: getLastReplicationJob
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/ConnectionIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/JobOptionalRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/jobs/get_without_logs:
post:
tags:
- jobs
summary: Get information about a job excluding logs
operationId: getJobInfoWithoutLogs
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/JobIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/JobInfoRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/jobs/get_light:
post:
tags:
- jobs
summary: Get information about a job excluding attempt info and logs
operationId: getJobInfoLight
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/JobIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/JobInfoLightRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/jobs/cancel:
post:
tags:
- jobs
summary: Cancels a job
operationId: cancelJob
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/JobIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/JobInfoRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/jobs/get_debug_info:
post:
tags:
- jobs
summary: Gets all information needed to debug this job
operationId: getJobDebugInfo
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/JobIdRequestBody"
required: true
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/JobDebugInfoRead"
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/jobs/get_normalization_status:
post:
tags:
- jobs
- internal
summary: Get normalization status to determine if we can bypass normalization phase
operationId: getAttemptNormalizationStatusesForJob
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/JobIdRequestBody"
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/AttemptNormalizationStatusReadList"
/v1/health:
get:
tags:
- health
summary: Health Check
operationId: getHealthCheck
responses:
"200":
description: Successful operation
content:
application/json:
schema:
$ref: "#/components/schemas/HealthCheckRead"
# This route is unsecured for external monitoring.
security: []
/v1/logs/get:
post:
tags:
- logs
summary: Get logs
operationId: getLogs
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/LogsRequestBody"
required: true
responses:
"200":
description: Returns the log file
content:
text/plain:
schema:
type: string
format: binary
"404":
$ref: "#/components/responses/NotFoundResponse"
"422":
$ref: "#/components/responses/InvalidInputResponse"
/v1/openapi:
get:
tags:
- openapi
summary: Returns the openapi specification
operationId: getOpenApiSpec
responses:
"200":
description: Returns the openapi specification file
content:
text/plain:
schema:
type: string
format: binary
/v1/attempt/set_workflow_in_attempt:
post:
tags:
- attempt
- internal
summary: For worker to register the workflow id in attempt.
operationId: setWorkflowInAttempt
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SetWorkflowInAttemptRequestBody"
required: true
responses:
"200":
description: Successful Operation
content:
application/json:
schema:
$ref: "#/components/schemas/InternalOperationResult"
/v1/attempt/save_stats:
post:
tags:
- attempt
- internal
summary: For worker to set sync stats of a running attempt.
operationId: saveStats
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SaveStatsRequestBody"
required: true
responses:
"200":
description: Successful Operation
content:
application/json:
schema:
$ref: "#/components/schemas/InternalOperationResult"
/v1/attempt/save_sync_config:
post:
tags:
- attempt
- internal
summary: For worker to save the AttemptSyncConfig for an attempt.
operationId: saveSyncConfig
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/SaveAttemptSyncConfigRequestBody"
required: true
responses:
"200":
description: Successful Operation
content:
application/json:
schema:
$ref: "#/components/schemas/InternalOperationResult"
/v1/stream_statuses/list:
post:
summary: Gets a list of stream statuses filtered by parameters (with AND semantics).
tags:
- stream_statuses
- streams
operationId: getStreamStatuses
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/StreamStatusListRequestBody"
responses:
"200":
description: Successfully queried stream statuses.
content:
application/json:
schema:
$ref: "#/components/schemas/StreamStatusReadList"
/v1/stream_statuses/create:
post:
summary: Creates a stream status.
tags:
- stream_statuses
- streams
operationId: createStreamStatus
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/StreamStatusCreateRequestBody"
responses:
"201":
description: Successfully created stream status.
content:
application/json:
schema:
$ref: "#/components/schemas/StreamStatusRead"
/v1/stream_statuses/update:
post:
summary: Updates a stream status.
tags:
- stream_statuses
- streams
operationId: updateStreamStatus
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/StreamStatusUpdateRequestBody"
responses:
"201":
description: Successfully created stream status.
content:
application/json:
schema:
$ref: "#/components/schemas/StreamStatusRead"
"200":
description: Successfully updated stream status.
content:
application/json:
schema:
$ref: "#/components/schemas/StreamStatusRead"
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
schemas:
# WORKSPACE
WorkspaceId:
type: string
format: uuid
CustomerId:
type: string
format: uuid
WorkspaceCreate:
type: object
required:
- name
properties:
email:
type: string
format: email
anonymousDataCollection:
type: boolean
name:
type: string
news:
type: boolean
securityUpdates:
type: boolean
notifications:
type: array
items:
$ref: "#/components/schemas/Notification"
notificationSettings:
$ref: "#/components/schemas/NotificationSettings"
displaySetupWizard:
type: boolean
defaultGeography:
$ref: "#/components/schemas/Geography"
webhookConfigs:
type: array
items:
$ref: "#/components/schemas/WebhookConfigWrite"
WebhookConfigWrite:
type: object
properties:
name:
type: string
description: human readable name for this webhook e.g. for UI display.
authToken:
type: string
description: an auth token, to be passed as the value for an HTTP Authorization header.
validationUrl:
type: string
description: if supplied, the webhook config will be validated by checking that this URL returns a 2xx response.
NotificationItem:
type: object
properties:
notificationType:
type: array
items:
$ref: "#/components/schemas/NotificationType"
slackConfiguration:
$ref: "#/components/schemas/SlackNotificationConfiguration"
customerioConfiguration:
$ref: "#/components/schemas/CustomerioNotificationConfiguration"
NotificationSettings:
type: object
properties:
sendOnSuccess:
$ref: "#/components/schemas/NotificationItem"
sendOnFailure:
$ref: "#/components/schemas/NotificationItem"
sendOnSyncDisabled:
$ref: "#/components/schemas/NotificationItem"
sendOnSyncDisabledWarning:
$ref: "#/components/schemas/NotificationItem"
sendOnConnectionUpdate:
$ref: "#/components/schemas/NotificationItem"
sendOnConnectionUpdateActionRequired:
$ref: "#/components/schemas/NotificationItem"
Notification:
type: object
required:
- notificationType
- sendOnSuccess
- sendOnFailure
properties:
# Instead of this type field, we would prefer a json schema "oneOf" but unfortunately,
# the jsonschema2pojo does not seem to support it yet: https://github.com/joelittlejohn/jsonschema2pojo/issues/392
notificationType:
$ref: "#/components/schemas/NotificationType"
sendOnSuccess:
type: boolean
default: false
sendOnFailure:
type: boolean
default: true
slackConfiguration:
$ref: "#/components/schemas/SlackNotificationConfiguration"
customerioConfiguration:
$ref: "#/components/schemas/CustomerioNotificationConfiguration"
SlackNotificationConfiguration:
type: object
required:
- webhook
properties:
webhook:
type: string
CustomerioNotificationConfiguration:
type: object
NotificationType:
type: string
enum:
- slack
- customerio
# - webhook
NotificationRead:
type: object
required:
- status
properties:
status:
type: string
enum:
- succeeded
- failed
message:
type: string
WorkspaceIdRequestBody:
type: object
required:
- workspaceId
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
ListConnectionsForWorkspacesRequestBody:
type: object
required:
- workspaceIds
- userId
properties:
workspaceIds:
type: array
items:
$ref: "#/components/schemas/WorkspaceId"
userId:
type: string
format: uuid
pagination:
$ref: "#/components/schemas/Pagination"
includeDeleted:
type: boolean
default: false
ListResourcesForWorkspacesRequestBody:
type: object
required:
- workspaceIds
properties:
workspaceIds:
type: array
items:
$ref: "#/components/schemas/WorkspaceId"
includeDeleted:
type: boolean
default: false
pagination:
$ref: "#/components/schemas/Pagination"
WorkspaceReadList:
type: object
required:
- workspaces
properties:
workspaces:
type: array
items:
$ref: "#/components/schemas/WorkspaceRead"
WorkspaceRead:
type: object
required:
- workspaceId
- customerId
- name
- slug
- initialSetupComplete
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
customerId:
$ref: "#/components/schemas/CustomerId"
email:
type: string
format: email
name:
type: string
slug:
type: string
initialSetupComplete:
type: boolean
displaySetupWizard:
type: boolean
anonymousDataCollection:
type: boolean
news:
type: boolean
securityUpdates:
type: boolean
notifications:
type: array
items:
$ref: "#/components/schemas/Notification"
notificationSettings:
$ref: "#/components/schemas/NotificationSettings"
firstCompletedSync:
type: boolean
feedbackDone:
type: boolean
defaultGeography:
$ref: "#/components/schemas/Geography"
webhookConfigs:
type: array
items:
# Note: this omits any sensitive info e.g. auth token
$ref: "#/components/schemas/WebhookConfigRead"
WebhookConfigRead:
type: object
description: the readable info for a webhook config; omits sensitive info e.g. auth token
required:
- id
properties:
id:
type: string
format: uuid
name:
type: string
description: human-readable name e.g. for display in UI
WorkspaceUpdateName:
type: object
required:
- workspaceId
- name
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
name:
type: string
WorkspaceUpdate:
type: object
description: Used to apply a patch-style update to a workspace, which means that null properties remain unchanged
required:
- workspaceId
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
email:
type: string
format: email
initialSetupComplete:
type: boolean
displaySetupWizard:
type: boolean
anonymousDataCollection:
type: boolean
news:
type: boolean
securityUpdates:
type: boolean
notifications:
type: array
items:
$ref: "#/components/schemas/Notification"
notificationSettings:
$ref: "#/components/schemas/NotificationSettings"
defaultGeography:
$ref: "#/components/schemas/Geography"
webhookConfigs:
type: array
items:
$ref: "#/components/schemas/WebhookConfigWrite"
WorkspaceGiveFeedback:
type: object
required:
- workspaceId
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
WebBackendWorkspaceState:
type: object
required:
- workspaceId
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
WebBackendWorkspaceStateResult:
type: object
required:
- hasConnections
- hasSources
- hasDestinations
properties:
hasConnections:
type: boolean
hasSources:
type: boolean
hasDestinations:
type: boolean
WebBackendGeographiesListResult:
type: object
required:
- geographies
properties:
geographies:
type: array
items:
$ref: "#/components/schemas/Geography"
# SLUG
SlugRequestBody:
type: object
required:
- slug
properties:
slug:
type: string
# Geography
Geography:
type: string
enum:
- auto
- us
- eu
# BuilderProject
ConnectorBuilderProjectId:
type: string
format: uuid
DeclarativeManifest:
description: Low code CDK manifest JSON object
type: object
DeclarativeManifestRead:
type: object
properties:
manifest:
$ref: "#/components/schemas/DeclarativeManifest"
isDraft:
type: boolean
version:
$ref: "#/components/schemas/ManifestVersion"
description:
type: string
ConnectorBuilderProjectDetails:
type: object
required:
- name
properties:
name:
type: string
draftManifest:
$ref: "#/components/schemas/DeclarativeManifest"
ConnectorBuilderProjectDetailsRead:
type: object
required:
- name
- builderProjectId
- hasDraft
properties:
name:
type: string
builderProjectId:
$ref: "#/components/schemas/ConnectorBuilderProjectId"
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
activeDeclarativeManifestVersion:
$ref: "#/components/schemas/ManifestVersion"
hasDraft:
type: boolean
ConnectorBuilderProjectIdWithWorkspaceId:
type: object
required:
- workspaceId
- builderProjectId
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
builderProjectId:
$ref: "#/components/schemas/ConnectorBuilderProjectId"
version:
$ref: "#/components/schemas/ManifestVersion"
ExistingConnectorBuilderProjectWithWorkspaceId:
type: object
required:
- workspaceId
- builderProjectId
- builderProject
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
builderProjectId:
$ref: "#/components/schemas/ConnectorBuilderProjectId"
builderProject:
$ref: "#/components/schemas/ConnectorBuilderProjectDetails"
ConnectorBuilderProjectWithWorkspaceId:
type: object
required:
- workspaceId
- builderProject
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
builderProject:
$ref: "#/components/schemas/ConnectorBuilderProjectDetails"
ConnectorBuilderProjectRead:
type: object
required:
- builderProject
properties:
builderProject:
$ref: "#/components/schemas/ConnectorBuilderProjectDetailsRead"
declarativeManifest:
$ref: "#/components/schemas/DeclarativeManifestRead"
ConnectorBuilderProjectReadList:
type: object
required:
- projects
properties:
projects:
type: array
items:
$ref: "#/components/schemas/ConnectorBuilderProjectDetailsRead"
ConnectorBuilderPublishRequestBody:
type: object
required:
- workspaceId
- builderProjectId
- name
- initialDeclarativeManifest
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
builderProjectId:
$ref: "#/components/schemas/ConnectorBuilderProjectId"
name:
type: string
initialDeclarativeManifest:
$ref: "#/components/schemas/DeclarativeSourceManifest"
ManifestVersion:
type: integer
format: int64
DeclarativeSourceManifest:
type: object
required:
- description
- manifest
- spec
- version
properties:
description:
type: string
manifest:
$ref: "#/components/schemas/DeclarativeManifest"
spec:
$ref: "#/components/schemas/SourceDefinitionSpecification"
version:
$ref: "#/components/schemas/ManifestVersion"
SourceDefinitionIdBody:
type: object
required:
- sourceDefinitionId
properties:
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
# SourceDefinition
SourceDefinitionId:
type: string
format: uuid
SourceDefinitionIdRequestBody:
type: object
required:
- sourceDefinitionId
properties:
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
SourceDefinitionCreate:
type: object
required:
- name
- dockerRepository
- dockerImageTag
- documentationUrl
properties:
name:
type: string
dockerRepository:
type: string
dockerImageTag:
type: string
documentationUrl:
type: string
format: uri
icon:
type: string
resourceRequirements:
$ref: "#/components/schemas/ActorDefinitionResourceRequirements"
SourceDefinitionUpdate:
type: object
description: Update the SourceDefinition. Currently, the only allowed attribute to update is the default docker image version.
required:
- sourceDefinitionId
- dockerImageTag
properties:
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
dockerImageTag:
type: string
resourceRequirements:
$ref: "#/components/schemas/ActorDefinitionResourceRequirements"
SourceDefinitionRead:
type: object
required:
- sourceDefinitionId
- name
- dockerRepository
- dockerImageTag
properties:
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
name:
type: string
dockerRepository:
type: string
dockerImageTag:
type: string
documentationUrl:
type: string
format: uri
icon:
type: string
protocolVersion:
description: The Airbyte Protocol version supported by the connector
type: string
releaseStage:
$ref: "#/components/schemas/ReleaseStage"
releaseDate:
description: The date when this connector was first released, in yyyy-mm-dd format.
type: string
format: date
sourceType:
type: string
enum:
- api
- file
- database
- custom
resourceRequirements:
$ref: "#/components/schemas/ActorDefinitionResourceRequirements"
maxSecondsBetweenMessages:
description: Number of seconds allowed between 2 airbyte protocol messages. The source will timeout if this delay is reach
type: integer
format: int64
SourceDefinitionReadList:
type: object
required:
- sourceDefinitions
properties:
sourceDefinitions:
type: array
items:
$ref: "#/components/schemas/SourceDefinitionRead"
CustomSourceDefinitionCreate:
type: object
required:
- workspaceId
- sourceDefinition
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
sourceDefinition:
$ref: "#/components/schemas/SourceDefinitionCreate"
SourceDefinitionIdWithWorkspaceId:
type: object
required:
- sourceDefinitionId
- workspaceId
properties:
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
ListDeclarativeManifestsRequestBody:
type: object
required:
- workspaceId
- sourceDefinitionId
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
DeclarativeManifestsReadList:
type: object
required:
- manifestVersions
properties:
manifestVersions:
type: array
items:
$ref: "#/components/schemas/DeclarativeManifestVersionRead"
DeclarativeManifestVersionRead:
type: object
required:
- version
- isActive
- description
properties:
version:
type: integer
format: int64
isActive:
type: boolean
description:
type: string
DeclarativeSourceDefinitionCreateManifestRequestBody:
type: object
required:
- workspaceId
- sourceDefinitionId
- setAsActiveManifest
- declarativeManifest
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
sourceDefinitionId:
$ref: "#/components/schemas/ConnectorBuilderProjectId"
setAsActiveManifest:
type: boolean
declarativeManifest:
$ref: "#/components/schemas/DeclarativeSourceManifest"
UpdateActiveManifestRequestBody:
type: object
required:
- workspaceId
- sourceDefinitionId
- version
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
sourceDefinitionId:
$ref: "#/components/schemas/ConnectorBuilderProjectId"
version:
$ref: "#/components/schemas/ManifestVersion"
PrivateSourceDefinitionRead:
type: object
required:
- sourceDefinition
- granted
properties:
sourceDefinition:
$ref: "#/components/schemas/SourceDefinitionRead"
granted:
type: boolean
PrivateSourceDefinitionReadList:
type: object
required:
- sourceDefinitions
properties:
sourceDefinitions:
type: array
items:
$ref: "#/components/schemas/PrivateSourceDefinitionRead"
# SOURCE SPECIFICATION
SourceDefinitionSpecification:
description: The specification for what values are required to configure the sourceDefinition.
type: object
example: { user: { type: string } }
SourceDefinitionSpecificationRead:
type: object
required:
- sourceDefinitionId
- jobInfo
properties:
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
documentationUrl:
type: string
connectionSpecification:
$ref: "#/components/schemas/SourceDefinitionSpecification"
advancedAuth:
$ref: "#/components/schemas/AdvancedAuth"
jobInfo:
$ref: "#/components/schemas/SynchronousJobRead"
# SOURCE
SourceId:
type: string
format: uuid
SourceIdRequestBody:
type: object
required:
- sourceId
properties:
sourceId:
$ref: "#/components/schemas/SourceId"
SourceCloneRequestBody:
description: The values required to configure the source. The schema for this should have an id of the existing source along with the configuration you want to change in case.
type: object
required:
- sourceCloneId
properties:
sourceCloneId:
$ref: "#/components/schemas/SourceId"
sourceConfiguration:
$ref: "#/components/schemas/SourceCloneConfiguration"
SourceCloneConfiguration:
type: object
properties:
connectionConfiguration:
$ref: "#/components/schemas/SourceConfiguration"
name:
type: string
SourceConfiguration:
description: The values required to configure the source. The schema for this must match the schema return by source_definition_specifications/get for the source.
example: { user: "charles" }
SourceCoreConfig:
type: object
required:
- sourceDefinitionId
- connectionConfiguration
- workspaceId
properties:
sourceId:
$ref: "#/components/schemas/SourceId"
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
connectionConfiguration:
$ref: "#/components/schemas/SourceConfiguration"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
SourceCreate:
type: object
required:
- workspaceId
- name
- sourceDefinitionId
- connectionConfiguration
properties:
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
connectionConfiguration:
$ref: "#/components/schemas/SourceConfiguration"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
name:
type: string
secretId:
example: "airbyte_oauth_workspace_0509f049-d671-48cb-8105-0a23d47e6db6_secret_e0d38206-034e-4d75-9d21-da5a99b02826_v1"
type: string
SourceDiscoverSchemaRequestBody:
type: object
required:
- sourceId
properties:
sourceId:
$ref: "#/components/schemas/SourceId"
connectionId:
type: string
format: uuid
disable_cache:
type: boolean
notifySchemaChange:
type: boolean
PartialSourceUpdate:
type: object
required:
- sourceId
properties:
sourceId:
$ref: "#/components/schemas/SourceId"
connectionConfiguration:
$ref: "#/components/schemas/SourceConfiguration"
name:
type: string
secretId:
example: "airbyte_oauth_workspace_0509f049-d671-48cb-8105-0a23d47e6db6_secret_e0d38206-034e-4d75-9d21-da5a99b02826_v1"
type: string
SourceUpdate:
type: object
required:
- sourceId
- connectionConfiguration
- name
properties:
sourceId:
$ref: "#/components/schemas/SourceId"
connectionConfiguration:
$ref: "#/components/schemas/SourceConfiguration"
name:
type: string
secretId:
example: "airbyte_oauth_workspace_0509f049-d671-48cb-8105-0a23d47e6db6_secret_e0d38206-034e-4d75-9d21-da5a99b02826_v1"
type: string
SourceRead:
type: object
required:
- sourceDefinitionId
- sourceId
- workspaceId
- connectionConfiguration
- name
- sourceName
properties:
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
sourceId:
$ref: "#/components/schemas/SourceId"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
connectionConfiguration:
$ref: "#/components/schemas/SourceConfiguration"
name:
type: string
sourceName:
type: string
icon:
type: string
SourceSnippetRead:
type: object
required:
- sourceId
- name
- sourceDefinitionId
- sourceName
properties:
sourceId:
$ref: "#/components/schemas/SourceId"
name:
type: string
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
sourceName:
type: string
icon:
type: string
SourceReadList:
type: object
required:
- sources
properties:
sources:
type: array
items:
$ref: "#/components/schemas/SourceRead"
SourceDiscoverSchemaWriteRequestBody:
description: to write this requested object to database.
type: object
required:
- catalog
properties:
catalog:
$ref: "#/components/schemas/AirbyteCatalog"
sourceId:
$ref: "#/components/schemas/SourceId"
connectorVersion:
type: string
configurationHash:
type: string
SourceDiscoverSchemaRead:
description: Returns the results of a discover catalog job. If the job was not successful, the catalog field will not be present. jobInfo will aways be present and its status be used to determine if the job was successful or not.
type: object
required:
- jobInfo
properties:
catalog:
$ref: "#/components/schemas/AirbyteCatalog"
jobInfo:
$ref: "#/components/schemas/SynchronousJobRead"
catalogId:
type: string
format: uuid
catalogDiff:
$ref: "#/components/schemas/CatalogDiff"
breakingChange:
type: boolean
connectionStatus:
$ref: "#/components/schemas/ConnectionStatus"
SourceAutoPropagateChange:
description:
Input of the source propagation, it contains the discovered catalog and a list of diff that need to be applied
to the existing catalog.
type: object
required:
- catalog
- catalogId
- sourceId
- workspaceId
properties:
catalog:
$ref: "#/components/schemas/AirbyteCatalog"
catalogId:
type: string
format: uuid
sourceId:
type: string
format: uuid
workspaceId:
type: string
format: uuid
SourceSearch:
type: object
properties:
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
sourceId:
$ref: "#/components/schemas/SourceId"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
connectionConfiguration:
$ref: "#/components/schemas/SourceConfiguration"
name:
type: string
sourceName:
type: string
# DESTINATION DEFINITION
DestinationDefinitionId:
type: string
format: uuid
DestinationDefinitionIdRequestBody:
type: object
required:
- destinationDefinitionId
properties:
destinationDefinitionId:
$ref: "#/components/schemas/DestinationDefinitionId"
DestinationDefinitionCreate:
type: object
required:
- name
- dockerRepository
- dockerImageTag
- documentationUrl
properties:
name:
type: string
dockerRepository:
type: string
dockerImageTag:
type: string
documentationUrl:
type: string
format: uri
icon:
type: string
resourceRequirements:
$ref: "#/components/schemas/ActorDefinitionResourceRequirements"
DestinationDefinitionUpdate:
type: object
required:
- destinationDefinitionId
- dockerImageag
properties:
destinationDefinitionId:
$ref: "#/components/schemas/DestinationDefinitionId"
dockerImageTag:
type: string
resourceRequirements:
$ref: "#/components/schemas/ActorDefinitionResourceRequirements"
DestinationDefinitionRead:
type: object
required:
- destinationDefinitionId
- name
- dockerRepository
- dockerImageTag
- documentationUrl
- supportsDbt
- normalizationConfig
properties:
destinationDefinitionId:
$ref: "#/components/schemas/DestinationDefinitionId"
name:
type: string
dockerRepository:
type: string
dockerImageTag:
type: string
documentationUrl:
type: string
format: uri
icon:
type: string
protocolVersion:
description: The Airbyte Protocol version supported by the connector
type: string
releaseStage:
$ref: "#/components/schemas/ReleaseStage"
releaseDate:
description: The date when this connector was first released, in yyyy-mm-dd format.
type: string
format: date
resourceRequirements:
$ref: "#/components/schemas/ActorDefinitionResourceRequirements"
supportsDbt:
type: boolean
description: an optional flag indicating whether DBT is used in the normalization. If the flag value is NULL - DBT is not used.
normalizationConfig:
$ref: "#/components/schemas/NormalizationDestinationDefinitionConfig"
DestinationDefinitionReadList:
type: object
required:
- destinationDefinitions
properties:
destinationDefinitions:
type: array
items:
$ref: "#/components/schemas/DestinationDefinitionRead"
CustomDestinationDefinitionCreate:
type: object
required:
- workspaceId
- destinationDefinition
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
destinationDefinition:
$ref: "#/components/schemas/DestinationDefinitionCreate"
DestinationDefinitionIdWithWorkspaceId:
type: object
required:
- destinationDefinitionId
- workspaceId
properties:
destinationDefinitionId:
$ref: "#/components/schemas/DestinationDefinitionId"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
PrivateDestinationDefinitionRead:
type: object
required:
- destinationDefinition
- granted
properties:
destinationDefinition:
$ref: "#/components/schemas/DestinationDefinitionRead"
granted:
type: boolean
PrivateDestinationDefinitionReadList:
type: object
required:
- destinationDefinitions
properties:
destinationDefinitions:
type: array
items:
$ref: "#/components/schemas/PrivateDestinationDefinitionRead"
# DESTINATION DEFINITION SPECIFICATION
DestinationDefinitionSpecification:
description: The specification for what values are required to configure the destinationDefinition.
type: object
example: { user: { type: string } }
DestinationDefinitionSpecificationRead:
type: object
required:
- destinationDefinitionId
- jobInfo
properties:
destinationDefinitionId:
$ref: "#/components/schemas/DestinationDefinitionId"
documentationUrl:
type: string
connectionSpecification:
$ref: "#/components/schemas/DestinationDefinitionSpecification"
advancedAuth:
$ref: "#/components/schemas/AdvancedAuth"
jobInfo:
$ref: "#/components/schemas/SynchronousJobRead"
supportedDestinationSyncModes:
type: array
items:
$ref: "#/components/schemas/DestinationSyncMode"
# DESTINATION
DestinationId:
type: string
format: uuid
DestinationIdRequestBody:
type: object
required:
- destinationId
properties:
destinationId:
$ref: "#/components/schemas/DestinationId"
DestinationConfiguration:
description: The values required to configure the destination. The schema for this must match the schema return by destination_definition_specifications/get for the destinationDefinition.
example: { user: "charles" }
DestinationCoreConfig:
type: object
required:
- workspaceId
- destinationDefinitionId
- connectionConfiguration
properties:
destinationId:
$ref: "#/components/schemas/DestinationId"
destinationDefinitionId:
$ref: "#/components/schemas/DestinationDefinitionId"
connectionConfiguration:
$ref: "#/components/schemas/DestinationConfiguration"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
DestinationCreate:
type: object
required:
- name
- workspaceId
- destinationDefinitionId
- connectionConfiguration
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
name:
type: string
destinationDefinitionId:
$ref: "#/components/schemas/DestinationDefinitionId"
connectionConfiguration:
$ref: "#/components/schemas/DestinationConfiguration"
DestinationUpdate:
type: object
required:
- destinationId
- connectionConfiguration
- name
properties:
destinationId:
$ref: "#/components/schemas/DestinationId"
connectionConfiguration:
$ref: "#/components/schemas/DestinationConfiguration"
name:
type: string
PartialDestinationUpdate:
type: object
properties:
destinationId:
$ref: "#/components/schemas/DestinationId"
connectionConfiguration:
$ref: "#/components/schemas/DestinationConfiguration"
name:
type: string
DestinationCloneRequestBody:
description: The values required to configure the destination. The schema for this should have an id of the existing destination along with the configuration you want to change in case.
type: object
required:
- destinationCloneId
properties:
destinationCloneId:
$ref: "#/components/schemas/DestinationId"
destinationConfiguration:
$ref: "#/components/schemas/DestinationCloneConfiguration"
DestinationCloneConfiguration:
type: object
properties:
connectionConfiguration:
$ref: "#/components/schemas/DestinationConfiguration"
name:
type: string
DestinationRead:
type: object
required:
- destinationDefinitionId
- destinationId
- workspaceId
- connectionConfiguration
- name
- destinationName
properties:
destinationDefinitionId:
$ref: "#/components/schemas/DestinationDefinitionId"
destinationId:
$ref: "#/components/schemas/DestinationId"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
connectionConfiguration:
$ref: "#/components/schemas/DestinationConfiguration"
name:
type: string
destinationName:
type: string
icon:
type: string
DestinationSnippetRead:
type: object
required:
- destinationId
- name
- destinationDefinitionId
- destinationName
properties:
destinationId:
$ref: "#/components/schemas/DestinationId"
name:
type: string
destinationDefinitionId:
$ref: "#/components/schemas/DestinationDefinitionId"
destinationName:
type: string
icon:
type: string
DestinationReadList:
type: object
required:
- destinations
properties:
destinations:
type: array
items:
$ref: "#/components/schemas/DestinationRead"
DestinationSearch:
type: object
properties:
destinationDefinitionId:
$ref: "#/components/schemas/DestinationDefinitionId"
destinationId:
$ref: "#/components/schemas/DestinationId"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
connectionConfiguration:
$ref: "#/components/schemas/DestinationConfiguration"
name:
type: string
destinationName:
type: string
# SOURCE / DESTINATION RELEASE STAGE ENUM
ReleaseStage:
type: string
enum:
- alpha
- beta
- generally_available
- custom
# CONNECTION
ConnectionId:
type: string
format: uuid
ConnectionIdRequestBody:
type: object
required:
- connectionId
properties:
connectionId:
$ref: "#/components/schemas/ConnectionId"
ConnectionStream:
type: object
required:
- streamName
- streamNamespace
properties:
streamName:
type: string
streamNamespace:
type: string
ConnectionStreamRequestBody:
type: object
required:
- connectionId
- streams
properties:
connectionId:
$ref: "#/components/schemas/ConnectionId"
streams:
type: array
items:
$ref: "#/components/schemas/ConnectionStream"
DbMigrationRequestBody:
type: object
required:
- database
properties:
database:
type: string
WebBackendConnectionRequestBody:
type: object
required:
- connectionId
properties:
withRefreshedCatalog:
type: boolean
connectionId:
$ref: "#/components/schemas/ConnectionId"
ConnectionCreate:
type: object
required:
- sourceId
- destinationId
- status
properties:
name:
type: string
description: Optional name of the connection
namespaceDefinition:
$ref: "#/components/schemas/NamespaceDefinitionType"
namespaceFormat:
type: string
description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
default: null
example: "${SOURCE_NAMESPACE}"
prefix:
type: string
description: Prefix that will be prepended to the name of each stream when it is written to the destination.
sourceId:
$ref: "#/components/schemas/SourceId"
destinationId:
$ref: "#/components/schemas/DestinationId"
operationIds:
type: array
items:
$ref: "#/components/schemas/OperationId"
syncCatalog:
$ref: "#/components/schemas/AirbyteCatalog"
schedule:
$ref: "#/components/schemas/ConnectionSchedule"
scheduleType:
$ref: "#/components/schemas/ConnectionScheduleType"
scheduleData:
$ref: "#/components/schemas/ConnectionScheduleData"
status:
$ref: "#/components/schemas/ConnectionStatus"
resourceRequirements:
$ref: "#/components/schemas/ResourceRequirements"
sourceCatalogId:
type: string
format: uuid
geography:
$ref: "#/components/schemas/Geography"
notifySchemaChanges:
type: boolean
notifySchemaChangesByEmail:
type: boolean
nonBreakingChangesPreference:
$ref: "#/components/schemas/NonBreakingChangesPreference"
WebBackendConnectionCreate:
type: object
required:
- sourceId
- destinationId
- status
properties:
name:
type: string
description: Optional name of the connection
namespaceDefinition:
$ref: "#/components/schemas/NamespaceDefinitionType"
namespaceFormat:
type: string
description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
default: null
example: "${SOURCE_NAMESPACE}"
prefix:
type: string
description: Prefix that will be prepended to the name of each stream when it is written to the destination.
sourceId:
$ref: "#/components/schemas/SourceId"
destinationId:
$ref: "#/components/schemas/DestinationId"
operationIds:
type: array
items:
$ref: "#/components/schemas/OperationId"
syncCatalog:
$ref: "#/components/schemas/AirbyteCatalog"
schedule:
$ref: "#/components/schemas/ConnectionSchedule"
scheduleType:
$ref: "#/components/schemas/ConnectionScheduleType"
scheduleData:
$ref: "#/components/schemas/ConnectionScheduleData"
status:
$ref: "#/components/schemas/ConnectionStatus"
resourceRequirements:
$ref: "#/components/schemas/ResourceRequirements"
operations:
type: array
items:
$ref: "#/components/schemas/OperationCreate"
sourceCatalogId:
type: string
format: uuid
geography:
$ref: "#/components/schemas/Geography"
nonBreakingChangesPreference:
$ref: "#/components/schemas/NonBreakingChangesPreference"
ConnectionStateCreateOrUpdate:
type: object
required:
- connectionId
- connectionState
properties:
connectionId:
$ref: "#/components/schemas/ConnectionId"
connectionState:
$ref: "#/components/schemas/ConnectionState"
ConnectionUpdate:
type: object
description: Used to apply a patch-style update to a connection, which means that null properties remain unchanged
required:
- connectionId
properties:
connectionId:
$ref: "#/components/schemas/ConnectionId"
namespaceDefinition:
$ref: "#/components/schemas/NamespaceDefinitionType"
namespaceFormat:
type: string
description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
default: null
example: "${SOURCE_NAMESPACE}"
name:
type: string
description: Name that will be set to this connection
prefix:
type: string
description: Prefix that will be prepended to the name of each stream when it is written to the destination.
operationIds:
type: array
items:
$ref: "#/components/schemas/OperationId"
syncCatalog:
$ref: "#/components/schemas/AirbyteCatalog"
schedule:
$ref: "#/components/schemas/ConnectionSchedule"
scheduleType:
$ref: "#/components/schemas/ConnectionScheduleType"
scheduleData:
$ref: "#/components/schemas/ConnectionScheduleData"
status:
$ref: "#/components/schemas/ConnectionStatus"
resourceRequirements:
$ref: "#/components/schemas/ResourceRequirements"
sourceCatalogId:
type: string
format: uuid
geography:
$ref: "#/components/schemas/Geography"
notifySchemaChanges:
type: boolean
notifySchemaChangesByEmail:
type: boolean
nonBreakingChangesPreference:
$ref: "#/components/schemas/NonBreakingChangesPreference"
breakingChange:
type: boolean
WebBackendConnectionUpdate:
type: object
description: Used to apply a patch-style update to a connection, which means that null properties remain unchanged
required:
- connectionId
properties:
name:
type: string
description: Name that will be set to the connection
connectionId:
$ref: "#/components/schemas/ConnectionId"
namespaceDefinition:
$ref: "#/components/schemas/NamespaceDefinitionType"
namespaceFormat:
type: string
description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
default: null
example: "${SOURCE_NAMESPACE}"
prefix:
type: string
description: Prefix that will be prepended to the name of each stream when it is written to the destination.
syncCatalog:
$ref: "#/components/schemas/AirbyteCatalog"
schedule:
$ref: "#/components/schemas/ConnectionSchedule"
scheduleType:
$ref: "#/components/schemas/ConnectionScheduleType"
scheduleData:
$ref: "#/components/schemas/ConnectionScheduleData"
status:
$ref: "#/components/schemas/ConnectionStatus"
resourceRequirements:
$ref: "#/components/schemas/ResourceRequirements"
skipReset:
type: boolean
operations:
type: array
items:
$ref: "#/components/schemas/WebBackendOperationCreateOrUpdate"
sourceCatalogId:
type: string
format: uuid
geography:
$ref: "#/components/schemas/Geography"
notifySchemaChanges:
type: boolean
notifySchemaChangesByEmail:
type: boolean
nonBreakingChangesPreference:
$ref: "#/components/schemas/NonBreakingChangesPreference"
ConnectionRead:
type: object
required:
- connectionId
- name
- sourceId
- destinationId
- syncCatalog
- status
- breakingChange
properties:
connectionId:
$ref: "#/components/schemas/ConnectionId"
name:
type: string
namespaceDefinition:
$ref: "#/components/schemas/NamespaceDefinitionType"
namespaceFormat:
type: string
description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
default: null
example: "${SOURCE_NAMESPACE}"
prefix:
type: string
description: Prefix that will be prepended to the name of each stream when it is written to the destination.
sourceId:
$ref: "#/components/schemas/SourceId"
destinationId:
$ref: "#/components/schemas/DestinationId"
operationIds:
type: array
items:
$ref: "#/components/schemas/OperationId"
syncCatalog:
$ref: "#/components/schemas/AirbyteCatalog"
schedule:
$ref: "#/components/schemas/ConnectionSchedule"
scheduleType:
$ref: "#/components/schemas/ConnectionScheduleType"
scheduleData:
$ref: "#/components/schemas/ConnectionScheduleData"
status:
$ref: "#/components/schemas/ConnectionStatus"
resourceRequirements:
$ref: "#/components/schemas/ResourceRequirements"
sourceCatalogId:
type: string
format: uuid
geography:
$ref: "#/components/schemas/Geography"
breakingChange:
type: boolean
notifySchemaChanges:
type: boolean
notifySchemaChangesByEmail:
type: boolean
nonBreakingChangesPreference:
$ref: "#/components/schemas/NonBreakingChangesPreference"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
SchemaChange:
enum:
- no_change
- non_breaking
- breaking
type: string
ConnectionSearch:
type: object
properties:
connectionId:
$ref: "#/components/schemas/ConnectionId"
name:
type: string
namespaceDefinition:
$ref: "#/components/schemas/NamespaceDefinitionType"
namespaceFormat:
type: string
description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
default: null
example: "${SOURCE_NAMESPACE}"
prefix:
type: string
description: Prefix that will be prepended to the name of each stream when it is written to the destination.
sourceId:
$ref: "#/components/schemas/SourceId"
destinationId:
$ref: "#/components/schemas/DestinationId"
schedule:
$ref: "#/components/schemas/ConnectionSchedule"
scheduleType:
$ref: "#/components/schemas/ConnectionScheduleType"
scheduleData:
$ref: "#/components/schemas/ConnectionScheduleData"
status:
$ref: "#/components/schemas/ConnectionStatus"
source:
$ref: "#/components/schemas/SourceSearch"
destination:
$ref: "#/components/schemas/DestinationSearch"
ConnectionReadList:
type: object
required:
- connections
properties:
connections:
type: array
items:
$ref: "#/components/schemas/ConnectionRead"
ConnectionStatus:
type: string
description: Active means that data is flowing through the connection. Inactive means it is not. Deprecated means the connection is off and cannot be re-activated. the schema field describes the elements of the schema that will be synced.
enum:
- active
- inactive
- deprecated
# TODO(https://github.com/airbytehq/airbyte/issues/11432): remove.
# Prefer the ConnectionScheduleType and ConnectionScheduleData properties.
ConnectionSchedule:
description: if null, then no schedule is set.
type: object
required:
- units
- timeUnit
properties:
units:
type: integer
format: int64
timeUnit:
type: string
enum:
- minutes
- hours
- days
- weeks
- months
ConnectionScheduleType:
description: determine how the schedule data should be interpreted
type: string
enum:
- manual
- basic
- cron
ConnectionScheduleData:
description: schedule for when the the connection should run, per the schedule type
type: object
properties:
# This should be populated when schedule type is basic.
basicSchedule:
type: object
required:
- timeUnit
- units
properties:
timeUnit:
type: string
enum:
- minutes
- hours
- days
- weeks
- months
units:
type: integer
format: int64
# This should be populated when schedule type is cron.
cron:
type: object
required:
- cronExpression
- cronTimeZone
properties:
cronExpression:
type: string
cronTimeZone:
type: string
NamespaceDefinitionType:
type: string
description: Method used for computing final namespace in destination
enum:
- source
- destination
- customformat
# Operations
OperationId:
type: string
format: uuid
OperationIdRequestBody:
type: object
required:
- operationId
properties:
operationId:
$ref: "#/components/schemas/OperationId"
OperationCreate:
type: object
required:
- name
- operatorConfiguration
- workspaceId
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
name:
type: string
operatorConfiguration:
$ref: "#/components/schemas/OperatorConfiguration"
OperationUpdate:
type: object
required:
- operationId
- name
- operatorConfiguration
properties:
operationId:
$ref: "#/components/schemas/OperationId"
name:
type: string
operatorConfiguration:
$ref: "#/components/schemas/OperatorConfiguration"
WebBackendOperationCreateOrUpdate:
type: object
required:
- name
- operatorConfiguration
- workspaceId
properties:
operationId:
$ref: "#/components/schemas/OperationId"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
name:
type: string
operatorConfiguration:
$ref: "#/components/schemas/OperatorConfiguration"
OperationRead:
type: object
required:
- operationId
- name
- operatorConfiguration
- workspaceId
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
operationId:
$ref: "#/components/schemas/OperationId"
name:
type: string
operatorConfiguration:
$ref: "#/components/schemas/OperatorConfiguration"
OperationReadList:
type: object
required:
- operations
properties:
operations:
type: array
items:
$ref: "#/components/schemas/OperationRead"
OperatorConfiguration:
type: object
required:
- operatorType
properties:
# Instead of this type field, we would prefer a json schema "oneOf" but unfortunately,
# the jsonschema2pojo does not seem to support it yet: https://github.com/joelittlejohn/jsonschema2pojo/issues/392
operatorType:
$ref: "#/components/schemas/OperatorType"
normalization:
$ref: "#/components/schemas/OperatorNormalization"
dbt:
$ref: "#/components/schemas/OperatorDbt"
webhook:
$ref: "#/components/schemas/OperatorWebhook"
OperatorType:
type: string
enum:
# - destination
- normalization
- dbt
- webhook
# - docker
OperatorNormalization:
type: object
properties:
option:
type: string
enum:
- basic
#- unnesting
OperatorDbt:
type: object
required:
- gitRepoUrl
properties:
gitRepoUrl:
type: string
gitRepoBranch:
type: string
dockerImage:
type: string
dbtArguments:
type: string
OperatorWebhook:
type: object
properties:
webhookConfigId:
type: string
format: uuid
description: The id of the webhook configs to use from the workspace.
webhookType:
type: string
enum:
- dbtCloud
dbtCloud:
type: object
required:
- accountId
- jobId
properties:
accountId:
type: integer
description: The account id associated with the job
jobId:
type: integer
description: The job id associated with the job
executionUrl:
type: string
description: DEPRECATED. Populate dbtCloud instead.
deprecated: true
executionBody:
type: string
description: DEPRECATED. Populate dbtCloud instead.
deprecated: true
CheckOperationRead:
type: object
required:
- status
properties:
status:
type: string
enum:
- succeeded
- failed
message:
type: string
# LOGS
LogType:
type: string
description: type/source of logs produced
enum:
- server
- scheduler
LogsRequestBody:
type: object
required:
- logType
properties:
logType:
$ref: "#/components/schemas/LogType"
# ACTOR CATALOG
ActorCatalogWithUpdatedAt:
description: A source actor catalog with the timestamp it was mostly recently updated
type: object
properties:
updatedAt:
type: integer
format: int64
catalog:
type: object
# SCHEMA CATALOG
AirbyteCatalog:
description: describes the available schema (catalog).
type: object
required:
- streams
properties:
streams:
type: array
items:
$ref: "#/components/schemas/AirbyteStreamAndConfiguration"
AirbyteStreamAndConfiguration:
description: each stream is split in two parts; the immutable schema from source and mutable configuration for destination
type: object
additionalProperties: false
properties:
stream:
$ref: "#/components/schemas/AirbyteStream"
config:
$ref: "#/components/schemas/AirbyteStreamConfiguration"
AirbyteStream:
description: the immutable schema defined by the source
type: object
additionalProperties: false
required:
- name
- json_schema
# todo (cgardens) - make required once sources are migrated
# - supported_sync_modes
properties:
name:
type: string
description: Stream's name.
jsonSchema:
$ref: "#/components/schemas/StreamJsonSchema"
supportedSyncModes:
type: array
items:
$ref: "#/components/schemas/SyncMode"
sourceDefinedCursor:
description: If the source defines the cursor field, then any other cursor field inputs will be ignored. If it does not, either the user_provided one is used, or the default one is used as a backup.
type: boolean
defaultCursorField:
description: Path to the field that will be used to determine if a record is new or modified since the last sync. If not provided by the source, the end user will have to specify the comparable themselves.
type: array
items:
type: string
sourceDefinedPrimaryKey:
description: If the source defines the primary key, paths to the fields that will be used as a primary key. If not provided by the source, the end user will have to specify the primary key themselves.
type: array
items:
type: array
items:
type: string
namespace:
type: string
description: Optional Source-defined namespace. Airbyte streams from the same sources should have the same namespace. Currently only used by JDBC destinations to determine what schema to write to.
StreamJsonSchema:
description: Stream schema using Json Schema specs.
type: object
AirbyteStreamConfiguration:
description: the mutable part of the stream to configure the destination
type: object
additionalProperties: false
required:
- syncMode
- destinationSyncMode
properties:
syncMode:
$ref: "#/components/schemas/SyncMode"
cursorField:
description: Path to the field that will be used to determine if a record is new or modified since the last sync. This field is REQUIRED if `sync_mode` is `incremental`. Otherwise it is ignored.
type: array
items:
type: string
destinationSyncMode:
$ref: "#/components/schemas/DestinationSyncMode"
primaryKey:
description: Paths to the fields that will be used as primary key. This field is REQUIRED if `destination_sync_mode` is `*_dedup`. Otherwise it is ignored.
type: array
items:
type: array
items:
type: string
aliasName:
description: Alias name to the stream to be used in the destination
type: string
selected:
description: If this is true, the stream is selected with all of its properties. For new connections, this considers if the stream is suggested or not
type: boolean
suggested:
description: Does the connector suggest that this stream be enabled by default?
type: boolean
fieldSelectionEnabled:
description: Whether field selection should be enabled. If this is true, only the properties in `selectedFields` will be included.
type: boolean
selectedFields:
description: Paths to the fields that will be included in the configured catalog. This must be set if `fieldSelectedEnabled` is set. An empty list indicates that no properties will be included.
type: array
items:
$ref: "#/components/schemas/SelectedFieldInfo"
SelectedFieldInfo:
type: object
# TODO(mfsiega-airbyte): point to thorough documentation on nested fields and paths.
description: Path to a field/column/property in a stream to be selected. For example, if the field to be selected is a database column called "foo", this will be ["foo"]. Use multiple path elements for nested schemas.
properties:
fieldPath:
type: array
items:
type: string
DataType:
type: string
enum:
- string
- number
- boolean
- object
- array
# SCHEDULER
JobId:
type: integer
format: int64
JobConfigType:
type: string
enum:
- check_connection_source
- check_connection_destination
- discover_schema
- get_spec
- sync
- reset_connection
JobListRequestBody:
type: object
required:
- configTypes
- configId
properties:
configTypes:
type: array
items:
$ref: "#/components/schemas/JobConfigType"
configId:
type: string
includingJobId:
description: If the job with this ID exists for the specified connection, returns the number of pages of jobs necessary to include this job. Returns an empty list if this job is specified and cannot be found in this connection.
$ref: "#/components/schemas/JobId"
pagination:
$ref: "#/components/schemas/Pagination"
JobIdRequestBody:
type: object
required:
- id
properties:
id:
$ref: "#/components/schemas/JobId"
JobRead:
type: object
required:
- id
- configType
- configId
- createdAt
- updatedAt
- status
properties:
id:
$ref: "#/components/schemas/JobId"
configType:
$ref: "#/components/schemas/JobConfigType"
configId:
type: string
enabledStreams:
type: array
items:
$ref: "#/components/schemas/StreamDescriptor"
createdAt:
type: integer
format: int64
updatedAt:
type: integer
format: int64
startedAt:
type: integer
format: int64
status:
$ref: "#/components/schemas/JobStatus"
resetConfig:
$ref: "#/components/schemas/ResetConfig"
ResetConfig:
type: object
description: contains information about how a reset was configured. only populated if the job was a reset.
properties:
streamsToReset:
type: array
items:
$ref: "#/components/schemas/StreamDescriptor"
StreamDescriptor:
type: object
required:
- name
properties:
name:
type: string
namespace:
type: string
JobDebugRead:
type: object
required:
- id
- configType
- configId
- status
- airbyteVersion
- sourceDefinition
- destinationDefinition
properties:
id:
$ref: "#/components/schemas/JobId"
configType:
$ref: "#/components/schemas/JobConfigType"
configId:
type: string
status:
$ref: "#/components/schemas/JobStatus"
airbyteVersion:
type: string
sourceDefinition:
$ref: "#/components/schemas/SourceDefinitionRead"
destinationDefinition:
$ref: "#/components/schemas/DestinationDefinitionRead"
WorkflowStateRead:
type: object
required:
- running
properties:
running:
type: boolean
JobWithAttemptsRead:
type: object
properties:
job:
$ref: "#/components/schemas/JobRead"
attempts:
type: array
items:
$ref: "#/components/schemas/AttemptRead"
JobCreatedAt:
description: epoch time of the latest sync job. null if no sync job has taken place.
type: integer
format: int64
JobStatus:
type: string
enum:
- pending
- running
- incomplete
- failed
- succeeded
- cancelled
AttemptRead:
type: object
required:
- id
- status
- createdAt
- updatedAt
properties:
id:
type: integer
format: int64
status:
$ref: "#/components/schemas/AttemptStatus"
createdAt:
type: integer
format: int64
updatedAt:
type: integer
format: int64
endedAt:
type: integer
format: int64
bytesSynced:
type: integer
format: int64
recordsSynced:
type: integer
format: int64
totalStats:
$ref: "#/components/schemas/AttemptStats"
streamStats:
type: array
items:
$ref: "#/components/schemas/AttemptStreamStats"
failureSummary:
$ref: "#/components/schemas/AttemptFailureSummary"
AttemptStats:
type: object
properties:
recordsEmitted:
type: integer
format: int64
bytesEmitted:
type: integer
format: int64
stateMessagesEmitted:
type: integer
format: int64
bytesCommitted:
type: integer
format: int64
recordsCommitted:
type: integer
format: int64
estimatedRecords:
type: integer
format: int64
estimatedBytes:
type: integer
format: int64
AttemptStreamStats:
type: object
required:
- streamName
- stats
properties:
streamName:
type: string
streamNamespace:
type: string
stats:
$ref: "#/components/schemas/AttemptStats"
AttemptFailureSummary:
type: object
required:
- failures
properties:
failures:
type: array
items:
$ref: "#/components/schemas/FailureReason"
partialSuccess:
description: True if the number of committed records for this attempt was greater than 0. False if 0 records were committed. If not set, the number of committed records is unknown.
type: boolean
FailureReason:
type: object
required:
- timestamp
properties:
failureOrigin:
$ref: "#/components/schemas/FailureOrigin"
failureType:
$ref: "#/components/schemas/FailureType"
externalMessage:
type: string
internalMessage:
type: string
stacktrace:
type: string
retryable:
description: True if it is known that retrying may succeed, e.g. for a transient failure. False if it is known that a retry will not succeed, e.g. for a configuration issue. If not set, retryable status is not well known.
type: boolean
timestamp:
type: integer
format: int64
FailureOrigin:
description: Indicates where the error originated. If not set, the origin of error is not well known.
type: string
enum:
- source
- destination
- replication
- persistence
- normalization
- dbt
- airbyte_platform
- unknown
FailureType:
description: Categorizes well known errors into types for programmatic handling. If not set, the type of error is not well known.
type: string
enum:
- config_error
- system_error
- manual_cancellation
- refresh_schema
- heartbeat_timeout
AttemptStatus:
type: string
enum:
- running
- failed
- succeeded
JobReadList:
type: object
required:
- jobs
- totalJobCount
properties:
jobs:
type: array
items:
$ref: "#/components/schemas/JobWithAttemptsRead"
totalJobCount:
description: the total count of jobs for the specified connection
type: integer
format: int64
JobInfoRead:
type: object
required:
- job
- attempts
properties:
job:
$ref: "#/components/schemas/JobRead"
attempts:
type: array
items:
$ref: "#/components/schemas/AttemptInfoRead"
JobInfoLightRead:
type: object
required:
- job
properties:
job:
$ref: "#/components/schemas/JobRead"
JobOptionalRead:
type: object
properties:
job:
$ref: "#/components/schemas/JobRead"
JobDebugInfoRead:
type: object
required:
- job
- attempts
properties:
job:
$ref: "#/components/schemas/JobDebugRead"
attempts:
type: array
items:
$ref: "#/components/schemas/AttemptInfoRead"
workflowState:
$ref: "#/components/schemas/WorkflowStateRead"
AttemptInfoRead:
type: object
required:
- attempt
- logs
properties:
attempt:
$ref: "#/components/schemas/AttemptRead"
logs:
$ref: "#/components/schemas/LogRead"
LogRead:
type: object
required:
- logLines
properties:
logLines:
type: array
items:
type: string
SynchronousJobRead:
type: object
required:
- id
- configType
- createdAt
- endedAt
- succeeded
properties:
id:
type: string
format: uuid
configType:
$ref: "#/components/schemas/JobConfigType"
configId:
description: only present if a config id was provided.
type: string
createdAt:
type: integer
format: int64
endedAt:
type: integer
format: int64
succeeded:
type: boolean
connectorConfigurationUpdated:
type: boolean
default: false
logs:
$ref: "#/components/schemas/LogRead"
failureReason:
$ref: "#/components/schemas/FailureReason"
Pagination:
type: object
properties:
pageSize:
type: integer
rowOffset:
type: integer
# Health
HealthCheckRead:
type: object
required:
- available
properties:
available:
type: boolean
# General
CheckConnectionRead:
type: object
required:
- jobInfo
properties:
status:
type: string
enum:
- succeeded
- failed
message:
type: string
jobInfo:
$ref: "#/components/schemas/SynchronousJobRead"
ConnectionState:
type: object
description: Contains the state for a connection. The stateType field identifies what type of state it is. Only the field corresponding to that type will be set, the rest will be null. If stateType=not_set, then none of the fields will be set.
required:
- connectionId
- stateType
properties:
stateType:
$ref: "#/components/schemas/ConnectionStateType"
connectionId:
$ref: "#/components/schemas/ConnectionId"
state: # legacy state object
$ref: "#/components/schemas/StateBlob"
streamState:
type: array
items:
$ref: "#/components/schemas/StreamState"
globalState:
$ref: "#/components/schemas/GlobalState"
StateBlob:
type: object
StreamState:
type: object
required:
- streamDescriptor
properties:
streamDescriptor:
$ref: "#/components/schemas/StreamDescriptor"
streamState:
$ref: "#/components/schemas/StateBlob"
GlobalState:
type: object
required:
- streamStates
properties:
shared_state:
$ref: "#/components/schemas/StateBlob"
streamStates:
type: array
items:
$ref: "#/components/schemas/StreamState"
ConnectionStateType:
type: string
enum:
- global
- stream
- legacy
- not_set
CatalogDiff:
type: object
description: Describes the difference between two Airbyte catalogs.
required:
- transforms
properties:
transforms:
description: list of stream transformations. order does not matter.
type: array
items:
$ref: "#/components/schemas/StreamTransform"
StreamTransform:
type: object
required:
- transformType
- streamDescriptor
properties:
transformType:
type: string
enum:
- add_stream
- remove_stream
- update_stream
streamDescriptor:
$ref: "#/components/schemas/StreamDescriptor"
updateStream:
type: array
description: list of field transformations. order does not matter.
items:
$ref: "#/components/schemas/FieldTransform"
FieldTransform:
type: object
description: "Describes the difference between two Streams."
required:
- transformType
- fieldName
- breaking
properties:
transformType:
type: string
enum:
- add_field
- remove_field
- update_field_schema
fieldName:
$ref: "#/components/schemas/FieldName"
breaking:
type: boolean
addField:
$ref: "#/components/schemas/FieldAdd"
removeField:
$ref: "#/components/schemas/FieldRemove"
updateFieldSchema:
$ref: "#/components/schemas/FieldSchemaUpdate"
FieldAdd:
type: object
properties:
schema:
$ref: "#/components/schemas/FieldSchema"
FieldRemove:
type: object
properties:
schema:
$ref: "#/components/schemas/FieldSchema"
FieldSchemaUpdate:
type: object
required:
- oldSchema
- newSchema
properties:
oldSchema:
$ref: "#/components/schemas/FieldSchema"
newSchema:
$ref: "#/components/schemas/FieldSchema"
FieldName:
description: A field name is a list of strings that form the path to the field.
type: array
items:
type: string
FieldSchema:
description: JSONSchema representation of the field
type: object
ActorDefinitionResourceRequirements:
description: actor definition specific resource requirements. if default is set, these are the requirements that should be set for ALL jobs run for this actor definition. it is overriden by the job type specific configurations. if not set, the platform will use defaults. these values will be overriden by configuration at the connection level.
type: object
additionalProperties: false
properties:
default:
"$ref": "#/components/schemas/ResourceRequirements"
jobSpecific:
type: array
items:
"$ref": "#/components/schemas/JobTypeResourceLimit"
ActorDefinitionRequestBody:
type: object
additionalProperties: false
required:
- actorDefinitionId
- actorType
properties:
actorDefinitionId:
type: string
format: uuid
actorType:
$ref: "#/components/schemas/ActorType"
NormalizationDestinationDefinitionConfig:
description: describes a normalization config for destination definition
type: object
required:
- supported
additionalProperties: false
properties:
supported:
type: boolean
description: whether the destination definition supports normalization.
default: false
normalizationRepository:
type: string
description: a field indicating the name of the repository to be used for normalization. If the value of the flag is NULL - normalization is not used.
normalizationTag:
type: string
description: a field indicating the tag of the docker repository to be used for normalization.
normalizationIntegrationType:
type: string
description: a field indicating the type of integration dialect to use for normalization.
JobTypeResourceLimit:
description: sets resource requirements for a specific job type for an actor definition. these values override the default, if both are set.
type: object
additionalProperties: false
required:
- jobType
- resourceRequirements
properties:
jobType:
"$ref": "#/components/schemas/JobType"
resourceRequirements:
"$ref": "#/components/schemas/ResourceRequirements"
JobType:
description: enum that describes the different types of jobs that the platform runs.
type: string
enum:
- get_spec
- check_connection
- discover_schema
- sync
- reset_connection
- connection_updater
- replicate
ResourceRequirements:
description: optional resource requirements to run workers (blank for unbounded allocations)
type: object
properties:
cpu_request:
type: string
cpu_limit:
type: string
memory_request:
type: string
memory_limit:
type: string
# DB Migration
DbMigrationState:
type: string
# https://github.com/flyway/flyway/blob/master/flyway-core/src/main/java/org/flywaydb/core/api/MigrationState.java
enum:
- pending
- above_target
- below_baseline
- baseline
- ignored
- missing_success
- missing_failed
- success
- undone
- available
- failed
- out_of_order
- future_success
- future_failed
- outdated
- superseded
- deleted
DbMigrationRead:
type: object
required:
- migrationType
- migrationVersion
- migrationDescription
properties:
migrationType:
type: string
migrationVersion:
type: string
migrationDescription:
type: string
migrationState:
$ref: "#/components/schemas/DbMigrationState"
migratedBy:
type: string
migratedAt:
type: integer
format: int64
migrationScript:
type: string
DbMigrationReadList:
type: object
properties:
migrations:
type: array
items:
$ref: "#/components/schemas/DbMigrationRead"
DbMigrationExecutionRead:
type: object
properties:
initialVersion:
type: string
targetVersion:
type: string
executedMigrations:
type: array
items:
$ref: "#/components/schemas/DbMigrationRead"
# OAuth
OAuthConfiguration:
description: The values required to configure OAuth flows. The schema for this must match the `OAuthConfigSpecification.oauthUserInputFromConnectorConfigSpecification` schema.
OAuthInputConfiguration:
$ref: "#/components/schemas/OAuthConfiguration"
AdvancedAuth:
type: object
properties:
authFlowType:
type: string
enum: ["oauth2.0", "oauth1.0"]
predicateKey:
description: Json Path to a field in the connectorSpecification that should exist for the advanced auth to be applicable.
type: array
items:
type: string
predicateValue:
description: Value of the predicate_key fields for the advanced auth to be applicable.
type: string
oauthConfigSpecification:
"$ref": "#/components/schemas/OAuthConfigSpecification"
OAuthConfigSpecification:
type: object
properties:
oauthUserInputFromConnectorConfigSpecification:
description: |-
OAuth specific blob. This is a Json Schema used to validate Json configurations used as input to OAuth.
Must be a valid non-nested JSON that refers to properties from ConnectorSpecification.connectionSpecification
using special annotation 'path_in_connector_config'.
These are input values the user is entering through the UI to authenticate to the connector, that might also shared
as inputs for syncing data via the connector.
Examples:
if no connector values is shared during oauth flow, oauth_user_input_from_connector_config_specification=[]
if connector values such as 'app_id' inside the top level are used to generate the API url for the oauth flow,
oauth_user_input_from_connector_config_specification={
app_id: {
type: string
path_in_connector_config: ['app_id']
}
}
if connector values such as 'info.app_id' nested inside another object are used to generate the API url for the oauth flow,
oauth_user_input_from_connector_config_specification={
app_id: {
type: string
path_in_connector_config: ['info', 'app_id']
}
}
$ref: "#/components/schemas/OAuthConfiguration"
completeOAuthOutputSpecification:
description: |-
OAuth specific blob. This is a Json Schema used to validate Json configurations produced by the OAuth flows as they are
returned by the distant OAuth APIs.
Must be a valid JSON describing the fields to merge back to `ConnectorSpecification.connectionSpecification`.
For each field, a special annotation `path_in_connector_config` can be specified to determine where to merge it,
Examples:
complete_oauth_output_specification={
refresh_token: {
type: string,
path_in_connector_config: ['credentials', 'refresh_token']
}
}
$ref: "#/components/schemas/OAuthConfiguration"
completeOAuthServerInputSpecification:
description: |-
OAuth specific blob. This is a Json Schema used to validate Json configurations persisted as Airbyte Server configurations.
Must be a valid non-nested JSON describing additional fields configured by the Airbyte Instance or Workspace Admins to be used by the
server when completing an OAuth flow (typically exchanging an auth code for refresh token).
Examples:
complete_oauth_server_input_specification={
client_id: {
type: string
},
client_secret: {
type: string
}
}
$ref: "#/components/schemas/OAuthConfiguration"
completeOAuthServerOutputSpecification:
description: |-
OAuth specific blob. This is a Json Schema used to validate Json configurations persisted as Airbyte Server configurations that
also need to be merged back into the connector configuration at runtime.
This is a subset configuration of `complete_oauth_server_input_specification` that filters fields out to retain only the ones that
are necessary for the connector to function with OAuth. (some fields could be used during oauth flows but not needed afterwards, therefore
they would be listed in the `complete_oauth_server_input_specification` but not `complete_oauth_server_output_specification`)
Must be a valid non-nested JSON describing additional fields configured by the Airbyte Instance or Workspace Admins to be used by the
connector when using OAuth flow APIs.
These fields are to be merged back to `ConnectorSpecification.connectionSpecification`.
For each field, a special annotation `path_in_connector_config` can be specified to determine where to merge it,
Examples:
complete_oauth_server_output_specification={
client_id: {
type: string,
path_in_connector_config: ['credentials', 'client_id']
},
client_secret: {
type: string,
path_in_connector_config: ['credentials', 'client_secret']
}
}
$ref: "#/components/schemas/OAuthConfiguration"
SourceOauthConsentRequest:
type: object
required:
- sourceDefinitionId
- workspaceId
- redirectUrl
properties:
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
redirectUrl:
description: The url to redirect to after getting the user consent
type: string
oAuthInputConfiguration:
$ref: "#/components/schemas/OAuthInputConfiguration"
sourceId:
$ref: "#/components/schemas/SourceId"
DestinationOauthConsentRequest:
type: object
required:
- destinationDefinitionId
- workspaceId
- redirectUrl
properties:
destinationDefinitionId:
$ref: "#/components/schemas/DestinationDefinitionId"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
redirectUrl:
description: The url to redirect to after getting the user consent
type: string
oAuthInputConfiguration:
$ref: "#/components/schemas/OAuthInputConfiguration"
destinationId:
$ref: "#/components/schemas/DestinationId"
OAuthConsentRead:
type: object
required:
- consentUrl
properties:
consentUrl:
type: string
CompleteSourceOauthRequest:
type: object
required:
- sourceDefinitionId
- workspaceId
properties:
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
redirectUrl:
description: When completing OAuth flow to gain an access token, some API sometimes requires to verify that the app re-send the redirectUrl that was used when consent was given.
type: string
queryParams:
description: The query parameters present in the redirect URL after a user granted consent e.g auth code
type: object
additionalProperties: true # Oauth parameters like code, state, etc.. will be different per API so we don't specify them in advance
oAuthInputConfiguration:
$ref: "#/components/schemas/OAuthInputConfiguration"
returnSecretCoordinate:
type: boolean
description: If set to true, returns a secret coordinate which references the stored tokens. By default, returns raw tokens.
default: false
sourceId:
$ref: "#/components/schemas/SourceId"
RevokeSourceOauthTokensRequest:
type: object
required:
- sourceId
- sourceDefinitionId
- workspaceId
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
sourceId:
$ref: "#/components/schemas/SourceId"
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
CompleteDestinationOAuthRequest:
type: object
required:
- destinationDefinitionId
- workspaceId
properties:
destinationDefinitionId:
$ref: "#/components/schemas/DestinationDefinitionId"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
redirectUrl:
description: When completing OAuth flow to gain an access token, some API sometimes requires to verify that the app re-send the redirectUrl that was used when consent was given.
type: string
queryParams:
description: The query parameters present in the redirect URL after a user granted consent e.g auth code
type: object
additionalProperties: true # Oauth parameters like code, state, etc.. will be different per API so we don't specify them in advance
oAuthInputConfiguration:
$ref: "#/components/schemas/OAuthInputConfiguration"
destinationId:
$ref: "#/components/schemas/DestinationId"
CompleteOAuthResponse:
type: object
required:
- request_succeeded
- auth_payload
properties:
request_succeeded:
type: boolean
request_error:
type: string
auth_payload:
type: object
additionalProperties: true # Oauth parameters like refresh/access token etc.. will be different per API, so we don't specify them in advance
SetInstancewideSourceOauthParamsRequestBody:
type: object
required:
- sourceDefinitionId
- params
properties:
sourceDefinitionId:
$ref: "#/components/schemas/SourceDefinitionId"
params:
type: object
additionalProperties: true
SetInstancewideDestinationOauthParamsRequestBody:
type: object
required:
- destinationDefinitionId
- params
properties:
destinationDefinitionId:
$ref: "#/components/schemas/DestinationDefinitionId"
params:
type: object
additionalProperties: true
WorkspaceOverrideOauthParamsRequestBody:
type: object
required:
- definitionId
- params
- workspaceId
- actorType
properties:
definitionId:
type: string
format: uuid
params:
type: object
additionalProperties: true
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
actorType:
$ref: "#/components/schemas/ActorType"
ActorType:
enum:
- source
- destination
type: string
# Web Backend
WebBackendCheckUpdatesRead:
type: object
description: Summary of source and destination definitions that could be updated
required:
- destinationDefinitions
- sourceDefinitions
properties:
destinationDefinitions:
type: integer
sourceDefinitions:
type: integer
WebBackendConnectionListRequestBody:
type: object
required:
- workspaceId
properties:
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
sourceId:
type: array
items:
$ref: "#/components/schemas/SourceId"
destinationId:
type: array
items:
$ref: "#/components/schemas/DestinationId"
WebBackendConnectionListItem:
type: object
description: Information about a connection that shows up in the connection list view.
required:
- connectionId
- name
- source
- destination
- status
- isSyncing
- schemaChange
properties:
connectionId:
$ref: "#/components/schemas/ConnectionId"
name:
type: string
scheduleType:
$ref: "#/components/schemas/ConnectionScheduleType"
scheduleData:
$ref: "#/components/schemas/ConnectionScheduleData"
status:
$ref: "#/components/schemas/ConnectionStatus"
source:
$ref: "#/components/schemas/SourceSnippetRead"
destination:
$ref: "#/components/schemas/DestinationSnippetRead"
latestSyncJobCreatedAt:
$ref: "#/components/schemas/JobCreatedAt"
latestSyncJobStatus:
$ref: "#/components/schemas/JobStatus"
isSyncing:
type: boolean
schemaChange:
$ref: "#/components/schemas/SchemaChange"
WebBackendConnectionRead:
type: object
required:
- connectionId
- name
- sourceId
- destinationId
- syncCatalog
- status
- source
- destination
- isSyncing
- schemaChange
- notifySchemaChanges
- notifySchemaChangesByEmail
- nonBreakingChangesPreference
properties:
connectionId:
$ref: "#/components/schemas/ConnectionId"
name:
type: string
namespaceDefinition:
$ref: "#/components/schemas/NamespaceDefinitionType"
namespaceFormat:
type: string
description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
default: null
example: "${SOURCE_NAMESPACE}"
prefix:
type: string
description: Prefix that will be prepended to the name of each stream when it is written to the destination.
sourceId:
$ref: "#/components/schemas/SourceId"
destinationId:
$ref: "#/components/schemas/DestinationId"
syncCatalog:
$ref: "#/components/schemas/AirbyteCatalog"
schedule:
$ref: "#/components/schemas/ConnectionSchedule"
scheduleType:
$ref: "#/components/schemas/ConnectionScheduleType"
scheduleData:
$ref: "#/components/schemas/ConnectionScheduleData"
status:
$ref: "#/components/schemas/ConnectionStatus"
operationIds:
type: array
items:
$ref: "#/components/schemas/OperationId"
source:
$ref: "#/components/schemas/SourceRead"
destination:
$ref: "#/components/schemas/DestinationRead"
operations:
type: array
items:
$ref: "#/components/schemas/OperationRead"
latestSyncJobCreatedAt:
$ref: "#/components/schemas/JobCreatedAt"
latestSyncJobStatus:
$ref: "#/components/schemas/JobStatus"
isSyncing:
type: boolean
resourceRequirements:
$ref: "#/components/schemas/ResourceRequirements"
catalogId:
type: string
format: uuid
catalogDiff:
$ref: "#/components/schemas/CatalogDiff"
geography:
$ref: "#/components/schemas/Geography"
schemaChange:
$ref: "#/components/schemas/SchemaChange"
notifySchemaChanges:
type: boolean
notifySchemaChangesByEmail:
type: boolean
nonBreakingChangesPreference:
$ref: "#/components/schemas/NonBreakingChangesPreference"
NonBreakingChangesPreference:
enum:
- ignore # do nothing if we detect a schema change
- disable # disable the connection, pausing the sync
- propagate_columns # automatically propagate the changes on selected streams and continue syncing
- propagate_fully # automatically propagate the changes including new streams and continue syncing
type: string
WebBackendConnectionReadList:
type: object
required:
- connections
properties:
connections:
type: array
items:
$ref: "#/components/schemas/WebBackendConnectionListItem"
SyncMode:
type: string
enum:
- full_refresh
- incremental
DestinationSyncMode:
type: string
enum:
- append
- overwrite
#- upsert_dedup # TODO chris: SCD Type 1 can be implemented later
- append_dedup # SCD Type 1 & 2
AirbyteArchive:
type: string
format: binary
description: Tarball Archive (.tar.gz) of Airbyte Configuration and Database
ImportRead:
type: object
required:
- status
properties:
status:
type: string
enum:
- succeeded
- failed
reason:
type: string
ResourceId:
type: string
format: uuid
UploadRead:
type: object
required:
- status
properties:
status:
type: string
enum:
- succeeded
- failed
resourceId:
$ref: "#/components/schemas/ResourceId"
ImportRequestBody:
type: object
required:
- resourceId
- workspaceId
properties:
resourceId:
$ref: "#/components/schemas/ResourceId"
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
AttemptNumber:
type: integer
format: int32
WorkflowId:
type: string
SetWorkflowInAttemptRequestBody:
type: object
required:
- jobId
- attemptNumber
- workflowId
properties:
jobId:
$ref: "#/components/schemas/JobId"
attemptNumber:
$ref: "#/components/schemas/AttemptNumber"
workflowId:
$ref: "#/components/schemas/WorkflowId"
processingTaskQueue:
type: string
default: ""
SaveStatsRequestBody:
type: object
required:
- jobId
- attemptNumber
- stats
properties:
jobId:
$ref: "#/components/schemas/JobId"
attemptNumber:
$ref: "#/components/schemas/AttemptNumber"
stats:
$ref: "#/components/schemas/AttemptStats"
streamStats:
type: array
items:
$ref: "#/components/schemas/AttemptStreamStats"
AttemptSyncConfig:
type: object
required:
- sourceConfiguration
- destinationConfiguration
properties:
sourceConfiguration:
$ref: "#/components/schemas/SourceConfiguration"
destinationConfiguration:
$ref: "#/components/schemas/DestinationConfiguration"
state:
$ref: "#/components/schemas/ConnectionState"
SaveAttemptSyncConfigRequestBody:
type: object
required:
- jobId
- attemptNumber
- syncConfig
properties:
jobId:
$ref: "#/components/schemas/JobId"
attemptNumber:
$ref: "#/components/schemas/AttemptNumber"
syncConfig:
$ref: "#/components/schemas/AttemptSyncConfig"
InternalOperationResult:
type: object
required:
- succeeded
properties:
succeeded:
type: boolean
DiscoverCatalogResult:
type: object
required:
- catalogId
properties:
catalogId:
type: string
format: uuid
AttemptNormalizationStatusReadList:
type: object
properties:
attemptNormalizationStatuses:
type: array
items:
$ref: "#/components/schemas/AttemptNormalizationStatusRead"
AttemptNormalizationStatusRead:
type: object
properties:
attemptNumber:
$ref: "#/components/schemas/AttemptNumber"
hasRecordsCommitted:
type: boolean
recordsCommitted:
type: integer
format: int64
hasNormalizationFailed:
type: boolean
StreamStatusId:
type: string
format: uuid
StreamStatusRunState:
type: string
description: >
Values:
* `PENDING` - The stream operation has been selected to run
* `RUNNING` - The stream operation is running
* `COMPLETE` - The stream operation ran successfully to completion
* `INCOMPLETE` - The stream operation has terminated in an incomplete state.
See StreamStatusIncompleteRunCause for more details.
enum:
- PENDING
- RUNNING
- COMPLETE
- INCOMPLETE
StreamStatusIncompleteRunCause:
type: string
description: >
Values:
* `FAILED` - A failure has occurred
* `CANCELED` - The run has been canceled
enum:
- FAILED
- CANCELED
StreamStatusJobType:
type: string
enum:
- SYNC
- RESET
StreamStatusListRequestBody:
type: object
required:
- pagination
- workspaceId
properties:
attemptNumber:
$ref: "#/components/schemas/AttemptNumber"
connectionId:
$ref: "#/components/schemas/ConnectionId"
jobId:
$ref: "#/components/schemas/JobId"
jobType:
$ref: "#/components/schemas/StreamStatusJobType"
pagination:
$ref: "#/components/schemas/Pagination"
streamName:
type: string
streamNamespace:
type: string
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
StreamStatusCreateRequestBody:
type: object
required:
- attemptNumber
- connectionId
- jobId
- jobType
- runState
- streamName
- transitionedAt
- workspaceId
properties:
attemptNumber:
$ref: "#/components/schemas/AttemptNumber"
connectionId:
$ref: "#/components/schemas/ConnectionId"
jobId:
$ref: "#/components/schemas/JobId"
incompleteRunCause:
$ref: "#/components/schemas/StreamStatusIncompleteRunCause"
jobType:
$ref: "#/components/schemas/StreamStatusJobType"
runState:
$ref: "#/components/schemas/StreamStatusRunState"
streamName:
type: string
streamNamespace:
type: string
transitionedAt:
type: integer
format: int64
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
StreamStatusUpdateRequestBody:
type: object
allOf:
- $ref: "#/components/schemas/StreamStatusCreateRequestBody"
required:
- id
properties:
id:
$ref: "#/components/schemas/StreamStatusId"
StreamStatusRead:
type: object
required:
- attemptNumber
- connectionId
- id
- jobId
- jobType
- runState
- streamName
- streamNamespace
- transitionedAt
- workspaceId
properties:
attemptNumber:
$ref: "#/components/schemas/AttemptNumber"
connectionId:
$ref: "#/components/schemas/ConnectionId"
id:
$ref: "#/components/schemas/StreamStatusId"
jobId:
$ref: "#/components/schemas/JobId"
incompleteRunCause:
$ref: "#/components/schemas/StreamStatusIncompleteRunCause"
jobType:
$ref: "#/components/schemas/StreamStatusJobType"
runState:
$ref: "#/components/schemas/StreamStatusRunState"
streamName:
type: string
streamNamespace:
type: string
transitionedAt:
type: integer
format: int64
workspaceId:
$ref: "#/components/schemas/WorkspaceId"
StreamStatusReadList:
type: object
properties:
streamStatuses:
type: array
items:
$ref: "#/components/schemas/StreamStatusRead"
InvalidInputProperty:
type: object
required:
- propertyPath
properties:
propertyPath:
type: string
invalidValue:
type: string
message:
type: string
NotFoundKnownExceptionInfo:
type: object
required:
- message
properties:
id:
type: string
message:
type: string
exceptionClassName:
type: string
exceptionStack:
type: array
items:
type: string
rootCauseExceptionClassName:
type: string
rootCauseExceptionStack:
type: array
items:
type: string
KnownExceptionInfo:
type: object
required:
- message
properties:
message:
type: string
exceptionClassName:
type: string
exceptionStack:
type: array
items:
type: string
rootCauseExceptionClassName:
type: string
rootCauseExceptionStack:
type: array
items:
type: string
InvalidInputExceptionInfo:
type: object
required:
- message
- validationErrors
properties:
message:
type: string
exceptionClassName:
type: string
exceptionStack:
type: array
items:
type: string
validationErrors:
type: array
items:
$ref: "#/components/schemas/InvalidInputProperty"
responses:
NotFoundResponse:
description: Object with given id was not found.
content:
application/json:
schema:
$ref: "#/components/schemas/NotFoundKnownExceptionInfo"
InvalidInputResponse:
description: Input failed validation
content:
application/json:
schema:
$ref: "#/components/schemas/InvalidInputExceptionInfo"
ExceptionResponse:
description: Exception occurred; see message for details.
content:
application/json:
schema:
$ref: "#/components/schemas/KnownExceptionInfo"
security:
- {}