openapi: 3.0.0 info: description: | Airbyte Configuration API [https://airbyte.io](https://airbyte.io). 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/{VERSION}/{METHOD_FAMILY}/{METHOD_NAME} e.g. `localhost:8000/v1/connections/create`. * For all `update` methods, the whole object must be passed in, even the fields that did not change. Change Management: * The major version of the API endpoint can be determined / specified in the URL `localhost:8080/v1/connections/create` * Minor version bumps will be invisible to the end user. The user cannot specify minor versions in requests. * All backwards incompatible changes will happen in major version bumps. We will not make backwards incompatible changes in minor version bumps. Examples of non-breaking changes (includes but not limited to...): * Adding fields to request or response bodies. * Adding new HTTP endpoints. * All `web_backend` APIs are not considered public APIs and are not guaranteeing backwards compatibility. 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: oauth description: OAuth related resources to delegate access from user. - name: db_migration description: Database migration related resources. - 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. 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/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/create: post: tags: - source_definition summary: Creates a sourceDefinition operationId: createSourceDefinition requestBody: content: application/json: schema: $ref: "#/components/schemas/SourceDefinitionCreate" responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/SourceDefinitionRead" "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/update_custom: post: tags: - source_definition summary: Update a custom sourceDefinition for the given workspace operationId: updateCustomSourceDefinition requestBody: content: application/json: schema: $ref: "#/components/schemas/CustomSourceDefinitionUpdate" 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_custom: post: tags: - source_definition summary: Delete a custom source definition for the given workspace operationId: deleteCustomSourceDefinition 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_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/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/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/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/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/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/destination_definitions/create: post: tags: - destination_definition summary: Creates a destinationsDefinition operationId: createDestinationDefinition requestBody: content: application/json: schema: $ref: "#/components/schemas/DestinationDefinitionCreate" responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/DestinationDefinitionRead" "422": $ref: "#/components/responses/InvalidInputResponse" /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/update_custom: post: tags: - destination_definition summary: Update a custom destinationDefinition for the given workspace operationId: updateCustomDestinationDefinition requestBody: content: application/json: schema: $ref: "#/components/schemas/CustomDestinationDefinitionUpdate" 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_custom: post: tags: - destination_definition summary: Delete a custom destination definition for the given workspace operationId: deleteCustomDestinationDefinition requestBody: content: application/json: schema: $ref: "#/components/schemas/DestinationDefinitionIdWithWorkspaceId" required: true responses: "204": description: The destination was deleted successfully. "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" # 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/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/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/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 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/state/get: post: tags: - connection 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/type/get: post: tags: - connection summary: Fetch the current 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/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/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/db_migrations/list: post: tags: - db_migration summary: List all database migrations operationId: listMigrations requestBody: content: application/json: schema: $ref: "#/components/schemas/DbMigrationRequestBody" required: true responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/DbMigrationReadList" "404": $ref: "#/components/responses/NotFoundResponse" "422": $ref: "#/components/responses/InvalidInputResponse" /v1/db_migrations/migrate: post: tags: - db_migration summary: Migrate the database to the latest version operationId: executeMigrations requestBody: content: application/json: schema: $ref: "#/components/schemas/DbMigrationRequestBody" required: true responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/DbMigrationExecutionRead" "404": $ref: "#/components/responses/NotFoundResponse" "422": $ref: "#/components/responses/InvalidInputResponse" /v1/source_oauths/oauth_params/create: post: tags: - 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: - 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: - 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/destination_oauths/get_consent_url: post: tags: - 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: - 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: - 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/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/WorkspaceIdRequestBody" 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/list_all: post: tags: - web_backend summary: Returns all connections for a workspace. operationId: webBackendListAllConnectionsForWorkspace requestBody: content: application/json: schema: $ref: "#/components/schemas/WorkspaceIdRequestBody" 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 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/connections/search: post: tags: - web_backend summary: Search connections operationId: webBackendSearchConnections requestBody: content: application/json: schema: $ref: "#/components/schemas/WebBackendConnectionSearch" required: true responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/WebBackendConnectionReadList" "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/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/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/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/deployment/export: post: tags: - deployment summary: Export Airbyte Configuration and Data Archive operationId: exportArchive responses: "200": description: Successful operation content: application/x-gzip: schema: $ref: "#/components/schemas/AirbyteArchive" /v1/deployment/import: post: tags: - deployment summary: Import Airbyte Configuration and Data Archive operationId: importArchive requestBody: content: application/x-gzip: schema: $ref: "#/components/schemas/AirbyteArchive" required: true responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/ImportRead" /v1/deployment/export_workspace: post: tags: - deployment summary: Export Airbyte Workspace Configuration operationId: exportWorkspace requestBody: content: application/json: schema: $ref: "#/components/schemas/WorkspaceIdRequestBody" required: true responses: "200": description: Successful operation content: application/x-gzip: schema: $ref: "#/components/schemas/AirbyteArchive" /v1/deployment/upload_archive_resource: post: tags: - deployment summary: Upload a GZIP archive tarball and stage it in the server's cache as a temporary resource operationId: uploadArchiveResource requestBody: content: application/x-gzip: schema: $ref: "#/components/schemas/AirbyteArchive" required: true responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/UploadRead" /v1/deployment/import_into_workspace: post: tags: - deployment summary: > Import Airbyte Configuration into Workspace (this operation might change ids of imported configurations). Note, in order to use this api endpoint, you might need to upload a temporary archive resource with 'deployment/upload_archive_resource' first operationId: importIntoWorkspace requestBody: content: application/json: schema: $ref: "#/components/schemas/ImportRequestBody" required: true responses: "200": description: Successful operation content: application/json: schema: $ref: "#/components/schemas/ImportRead" "404": $ref: "#/components/responses/NotFoundResponse" 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" displaySetupWizard: type: boolean 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" 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" firstCompletedSync: type: boolean feedbackDone: type: boolean WorkspaceUpdateName: type: object required: - workspaceId - name properties: workspaceId: $ref: "#/components/schemas/WorkspaceId" name: type: string WorkspaceUpdate: type: object required: - workspaceId - initialSetupComplete - anonymousDataCollection - news - securityUpdates 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" 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 # SLUG SlugRequestBody: type: object required: - slug properties: slug: type: string # 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 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" 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" CustomSourceDefinitionUpdate: type: object required: - workspaceId - sourceDefinition properties: workspaceId: $ref: "#/components/schemas/WorkspaceId" sourceDefinition: $ref: "#/components/schemas/SourceDefinitionUpdate" SourceDefinitionIdWithWorkspaceId: type: object required: - sourceDefinitionId - workspaceId properties: sourceDefinitionId: $ref: "#/components/schemas/SourceDefinitionId" workspaceId: $ref: "#/components/schemas/WorkspaceId" 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 } } SourceAuthSpecification: $ref: "#/components/schemas/AuthSpecification" AuthSpecification: type: object properties: auth_type: type: string enum: ["oauth2.0"] # Future auth types should be added here oauth2Specification: "$ref": "#/components/schemas/OAuth2Specification" OAuth2Specification: description: An object containing any metadata needed to describe this connector's Oauth flow type: object required: - rootObject - oauthFlowInitParameters - oauthFlowOutputParameters properties: rootObject: description: "A list of strings representing a pointer to the root object which contains any oauth parameters in the ConnectorSpecification. Examples: if oauth parameters were contained inside the top level, rootObject=[] If they were nested inside another object {'credentials': {'app_id' etc...}, rootObject=['credentials'] If they were inside a oneOf {'switch': {oneOf: [{client_id...}, {non_oauth_param]}}, rootObject=['switch', 0] " type: array items: {} # <--- using generic any type. Build fails with oneOf (https://github.com/OpenAPITools/openapi-generator/issues/6161) example: - path - 1 oauthFlowInitParameters: description: "Pointers to the fields in the rootObject needed to obtain the initial refresh/access tokens for the OAuth flow. Each inner array represents the path in the rootObject of the referenced field. For example. Assume the rootObject contains params 'app_secret', 'app_id' which are needed to get the initial refresh token. If they are not nested in the rootObject, then the array would look like this [['app_secret'], ['app_id']] If they are nested inside an object called 'auth_params' then this array would be [['auth_params', 'app_secret'], ['auth_params', 'app_id']]" type: array items: description: A list of strings denoting a pointer into the rootObject for where to find this property type: array items: type: string oauthFlowOutputParameters: description: "Pointers to the fields in the rootObject which can be populated from successfully completing the oauth flow using the init parameters. This is typically a refresh/access token. Each inner array represents the path in the rootObject of the referenced field." type: array items: description: A list of strings denoting a pointer into the rootObject for where to find this property type: array items: type: string SourceDefinitionSpecificationRead: type: object required: - sourceDefinitionId - jobInfo properties: sourceDefinitionId: $ref: "#/components/schemas/SourceDefinitionId" documentationUrl: type: string connectionSpecification: $ref: "#/components/schemas/SourceDefinitionSpecification" authSpecification: $ref: "#/components/schemas/SourceAuthSpecification" 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" 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 properties: sourceDefinitionId: $ref: "#/components/schemas/SourceDefinitionId" connectionConfiguration: $ref: "#/components/schemas/SourceConfiguration" 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 SourceDiscoverSchemaRequestBody: type: object required: - sourceId properties: sourceId: $ref: "#/components/schemas/SourceId" disable_cache: type: boolean SourceUpdate: type: object required: - sourceId - connectionConfiguration - name properties: sourceId: $ref: "#/components/schemas/SourceId" connectionConfiguration: $ref: "#/components/schemas/SourceConfiguration" name: 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 SourceReadList: type: object required: - sources properties: sources: type: array items: $ref: "#/components/schemas/SourceRead" 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 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 DestinationAuthSpecification: $ref: "#/components/schemas/AuthSpecification" 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 properties: destinationDefinitionId: $ref: "#/components/schemas/DestinationDefinitionId" name: type: string dockerRepository: type: string dockerImageTag: type: string documentationUrl: type: string format: uri icon: 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" 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" CustomDestinationDefinitionUpdate: type: object required: - workspaceId - destinationDefinition properties: workspaceId: $ref: "#/components/schemas/WorkspaceId" destinationDefinition: $ref: "#/components/schemas/DestinationDefinitionUpdate" 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. example: { user: { type: string } } DestinationDefinitionSpecificationRead: type: object required: - destinationDefinitionId - jobInfo properties: destinationDefinitionId: $ref: "#/components/schemas/DestinationDefinitionId" documentationUrl: type: string connectionSpecification: $ref: "#/components/schemas/DestinationDefinitionSpecification" authSpecification: $ref: "#/components/schemas/DestinationAuthSpecification" advancedAuth: $ref: "#/components/schemas/AdvancedAuth" jobInfo: $ref: "#/components/schemas/SynchronousJobRead" supportedDestinationSyncModes: type: array items: $ref: "#/components/schemas/DestinationSyncMode" supportsDbt: type: boolean supportsNormalization: type: boolean # 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: destinationDefinitionId: $ref: "#/components/schemas/DestinationDefinitionId" connectionConfiguration: $ref: "#/components/schemas/DestinationConfiguration" 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 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 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" 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" status: $ref: "#/components/schemas/ConnectionStatus" resourceRequirements: $ref: "#/components/schemas/ResourceRequirements" sourceCatalogId: type: string format: uuid 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" status: $ref: "#/components/schemas/ConnectionStatus" resourceRequirements: $ref: "#/components/schemas/ResourceRequirements" operations: type: array items: $ref: "#/components/schemas/OperationCreate" sourceCatalogId: type: string format: uuid ConnectionUpdate: type: object required: - connectionId - syncCatalog - status 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" status: $ref: "#/components/schemas/ConnectionStatus" resourceRequirements: $ref: "#/components/schemas/ResourceRequirements" sourceCatalogId: type: string format: uuid WebBackendConnectionUpdate: type: object required: - connectionId - syncCatalog - status 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. operationIds: type: array items: $ref: "#/components/schemas/OperationId" syncCatalog: $ref: "#/components/schemas/AirbyteCatalog" schedule: $ref: "#/components/schemas/ConnectionSchedule" status: $ref: "#/components/schemas/ConnectionStatus" resourceRequirements: $ref: "#/components/schemas/ResourceRequirements" withRefreshedCatalog: type: boolean operations: type: array items: $ref: "#/components/schemas/WebBackendOperationCreateOrUpdate" sourceCatalogId: type: string format: uuid ConnectionRead: type: object required: - connectionId - name - sourceId - destinationId - syncCatalog - status 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" status: $ref: "#/components/schemas/ConnectionStatus" resourceRequirements: $ref: "#/components/schemas/ResourceRequirements" sourceCatalogId: type: string format: uuid 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" status: $ref: "#/components/schemas/ConnectionStatus" source: $ref: "#/components/schemas/SourceSearch" destination: $ref: "#/components/schemas/DestinationSearch" WebBackendConnectionSearch: 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" 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 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 NamespaceDefinitionType: type: string description: Method used for computing final namespace in destination default: source 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" OperatorType: type: string enum: # - destination - normalization - dbt # - docker # - webhook 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 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" # 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: type: boolean 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 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 createdAt: type: integer format: int64 updatedAt: type: integer format: int64 status: $ref: "#/components/schemas/JobStatus" streams: 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" JobWithAttemptsRead: type: object properties: job: $ref: "#/components/schemas/JobRead" attempts: type: array items: $ref: "#/components/schemas/AttemptRead" 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 recordsCommitted: type: integer format: int64 AttemptStreamStats: type: object required: - streamName - stats properties: streamName: type: string stats: $ref: "#/components/schemas/AttemptStats" AttemptFailureSummary: type: object required: - failures properties: failures: type: array items: $ref: "#/components/schemas/AttemptFailureReason" 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 AttemptFailureReason: type: object required: - timestamp properties: failureOrigin: $ref: "#/components/schemas/AttemptFailureOrigin" failureType: $ref: "#/components/schemas/AttemptFailureType" 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 AttemptFailureOrigin: 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 AttemptFailureType: 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 AttemptStatus: type: string enum: - running - failed - succeeded JobReadList: type: object required: - jobs properties: jobs: type: array items: $ref: "#/components/schemas/JobWithAttemptsRead" JobInfoRead: type: object required: - job - attempts properties: job: $ref: "#/components/schemas/JobRead" attempts: type: array items: $ref: "#/components/schemas/AttemptInfoRead" JobDebugInfoRead: type: object required: - job - attempts properties: job: $ref: "#/components/schemas/JobDebugRead" attempts: type: array items: $ref: "#/components/schemas/AttemptInfoRead" 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 logs: $ref: "#/components/schemas/LogRead" 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: - status - 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 properties: transformType: type: string enum: - add_stream - remove_stream - update_stream addStream: $ref: "#/components/schemas/StreamDescriptor" removeStream: $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 properties: transformType: type: string enum: - add_field - remove_field - update_field_schema addField: $ref: "#/components/schemas/FieldNameAndSchema" removeField: $ref: "#/components/schemas/FieldNameAndSchema" updateFieldSchema: $ref: "#/components/schemas/FieldSchemaUpdate" FieldNameAndSchema: type: object required: - fieldName - fieldSchema properties: fieldName: type: array items: type: string fieldSchema: $ref: "#/components/schemas/FieldSchema" FieldSchemaUpdate: type: object required: - fieldName - oldSchema - newSchema properties: fieldName: type: array items: type: string oldSchema: $ref: "#/components/schemas/FieldSchema" newSchema: $ref: "#/components/schemas/FieldSchema" FieldSchema: description: JSONSchema representation of the field type: object additionalProperties: true 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" 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" 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" 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" 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" CompleteOAuthResponse: 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 # Web Backend WebBackendConnectionRead: type: object required: - connectionId - name - sourceId - destinationId - syncCatalog - status - source - destination - isSyncing 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" 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: description: epoch time of the latest sync job. null if no sync job has taken place. type: integer format: int64 latestSyncJobStatus: $ref: "#/components/schemas/JobStatus" isSyncing: type: boolean resourceRequirements: $ref: "#/components/schemas/ResourceRequirements" catalogId: type: string format: uuid catalogDiff: $ref: "#/components/schemas/CatalogDiff" WebBackendConnectionReadList: type: object required: - connections properties: connections: type: array items: $ref: "#/components/schemas/WebBackendConnectionRead" 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" 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: - {}