openapi: 3.0.0
servers:
  - url: http://airbyte.local
  - url: http://localhost:8000/api
info:
  contact:
    email: contact@airbyte.io
  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.

    Authentication (OSS):
    * When authenticating to the Configuration API, you must use Basic Authentication by setting the Authentication Header to Basic and base64 encoding the username and password (which are `airbyte` and `password` by default - so base64 encoding `airbyte:password` results in `YWlyYnl0ZTpwYXNzd29yZA==`). So the full header reads `'Authorization': "Basic YWlyYnl0ZTpwYXNzd29yZA=="`
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  title: Airbyte Configuration API
  version: 1.0.0
  x-apisguru-categories:
    - developer_tools
  x-origin:
    - format: openapi
      url: https://raw.githubusercontent.com/airbytehq/airbyte/master/airbyte-api/src/main/openapi/config.yaml
      version: "3.0"
  x-providerName: airbyte.local
  x-serviceName: config
externalDocs:
  description: Find out more about Airbyte
  url: https://airbyte.io
security:
  - {}
tags:
  - description: Workspace related resources.
    name: workspace
  - description: SourceDefinition related resources.
    name: source_definition
  - description: SourceDefinition specification related resources.
    name: source_definition_specification
  - description: Source related resources.
    name: source
  - description: DestinationDefinition related resources.
    name: destination_definition
  - description: DestinationDefinitionSpecification related resources.
    name: destination_definition_specification
  - description: Destination related resources.
    name: destination
  - description: Connection between sources and destinations.
    name: connection
  - description: Source OAuth related resources to delegate access from user.
    name: destination_oauth
  - description: Source OAuth related resources to delegate access from user.
    name: source_oauth
  - 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: web_backend
  - description: Healthchecks
    name: health
  - description: Export/Import Airbyte Configuration and Database resources.
    name: deployment
  - description: Interactions with attempt related resources.
    name: attempt
  - description: Interactions with state related resources.
    name: state
paths:
  /v1/attempt/save_stats:
    post:
      operationId: saveStats
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SaveStatsRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InternalOperationResult"
          description: Successful Operation
      summary: For worker to set sync stats of a running attempt.
      tags:
        - attempt
        - internal
  /v1/attempt/save_sync_config:
    post:
      operationId: saveSyncConfig
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SaveAttemptSyncConfigRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InternalOperationResult"
          description: Successful Operation
      summary: For worker to save the AttemptSyncConfig for an attempt.
      tags:
        - attempt
        - internal
  /v1/attempt/set_workflow_in_attempt:
    post:
      operationId: setWorkflowInAttempt
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SetWorkflowInAttemptRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InternalOperationResult"
          description: Successful Operation
      summary: For worker to register the workflow id in attempt.
      tags:
        - attempt
        - internal
  /v1/connections/create:
    post:
      operationId: createConnection
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConnectionCreate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConnectionRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Create a connection between a source and a destination
      tags:
        - connection
  /v1/connections/delete:
    post:
      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"
      summary: Delete a connection
      tags:
        - connection
  /v1/connections/get:
    post:
      operationId: getConnection
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConnectionIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConnectionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get a connection
      tags:
        - connection
  /v1/connections/list:
    post:
      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":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConnectionReadList"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Returns all connections for a workspace.
      tags:
        - connection
  /v1/connections/list_all:
    post:
      description: List connections for workspace, including deleted connections.
      operationId: listAllConnectionsForWorkspace
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WorkspaceIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConnectionReadList"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Returns all connections for a workspace, including deleted connections.
      tags:
        - connection
  /v1/connections/reset:
    post:
      operationId: resetConnection
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConnectionIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JobInfoRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Reset the data for the connection. Deletes data generated by the connection in the destination. Resets any cursors back to initial state.
      tags:
        - connection
  /v1/connections/search:
    post:
      operationId: searchConnections
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConnectionSearch"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConnectionReadList"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Search connections
      tags:
        - connection
  /v1/connections/sync:
    post:
      operationId: syncConnection
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConnectionIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JobInfoRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Trigger a manual sync of the connection
      tags:
        - connection
  /v1/connections/update:
    post:
      description: |
        Apply a patch-style update to a connection. Only fields present on the update request body will be updated.
        Note that if a catalog is present in the request body, the connection's entire catalog will be replaced
        with the catalog from the request. This means that to modify a single stream, the entire new catalog
        containing the updated stream needs to be sent.
      operationId: updateConnection
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConnectionUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConnectionRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Update a connection
      tags:
        - connection
  /v1/destination_definition_specifications/get:
    post:
      operationId: getDestinationDefinitionSpecification
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationDefinitionIdWithWorkspaceId"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationDefinitionSpecificationRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get specification for a destinationDefinition
      tags:
        - destination_definition_specification
  /v1/destination_definitions/create_custom:
    post:
      operationId: createCustomDestinationDefinition
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CustomDestinationDefinitionCreate"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationDefinitionRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Creates a custom destinationDefinition for the given workspace
      tags:
        - destination_definition
  /v1/destination_definitions/delete:
    post:
      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"
      summary: Delete a destination definition
      tags:
        - destination_definition
  /v1/destination_definitions/get:
    post:
      operationId: getDestinationDefinition
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationDefinitionIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationDefinitionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get destinationDefinition
      tags:
        - destination_definition
  /v1/destination_definitions/get_for_workspace:
    post:
      operationId: getDestinationDefinitionForWorkspace
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationDefinitionIdWithWorkspaceId"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationDefinitionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get a destinationDefinition that is configured for the given workspace
      tags:
        - destination_definition
  /v1/destination_definitions/grant_definition:
    post:
      operationId: grantDestinationDefinitionToWorkspace
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationDefinitionIdWithWorkspaceId"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrivateDestinationDefinitionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: grant a private, non-custom destinationDefinition to a given workspace
      tags:
        - destination_definition
  /v1/destination_definitions/list:
    post:
      operationId: listDestinationDefinitions
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationDefinitionReadList"
          description: Successful operation
      summary: List all the destinationDefinitions the current Airbyte deployment is configured to use
      tags:
        - destination_definition
  /v1/destination_definitions/list_for_workspace:
    post:
      operationId: listDestinationDefinitionsForWorkspace
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WorkspaceIdRequestBody"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationDefinitionReadList"
          description: Successful operation
      summary: List all the destinationDefinitions the given workspace is configured to use
      tags:
        - destination_definition
  /v1/destination_definitions/list_latest:
    post:
      description: Guaranteed to retrieve the latest information on supported destinations.
      operationId: listLatestDestinationDefinitions
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationDefinitionReadList"
          description: Successful operation
      summary: List the latest destinationDefinitions Airbyte supports
      tags:
        - destination_definition
  /v1/destination_definitions/list_private:
    post:
      operationId: listPrivateDestinationDefinitions
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WorkspaceIdRequestBody"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrivateDestinationDefinitionReadList"
          description: Successful operation
      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.
      tags:
        - destination_definition
  /v1/destination_definitions/revoke_definition:
    post:
      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"
      summary: revoke a grant to a private, non-custom destinationDefinition from a given workspace
      tags:
        - destination_definition
  /v1/destination_definitions/update:
    post:
      operationId: updateDestinationDefinition
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationDefinitionUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationDefinitionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Update destinationDefinition
      tags:
        - destination_definition
  /v1/destination_oauths/complete_oauth:
    post:
      operationId: completeDestinationOAuth
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CompleteDestinationOAuthRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CompleteOAuthResponse"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Given a destination def ID generate an access/refresh token etc.
      tags:
        - destination_oauth
  /v1/destination_oauths/get_consent_url:
    post:
      operationId: getDestinationOAuthConsent
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationOauthConsentRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OAuthConsentRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Given a destination connector definition ID, return the URL to the consent screen where to redirect the user to.
      tags:
        - destination_oauth
  /v1/destination_oauths/oauth_params/create:
    post:
      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"
      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.
      tags:
        - destination_oauth
  /v1/destinations/check_connection:
    post:
      operationId: checkConnectionToDestination
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckConnectionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Check connection to the destination
      tags:
        - destination
  /v1/destinations/check_connection_for_update:
    post:
      operationId: checkConnectionToDestinationForUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckConnectionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Check connection for a proposed update to a destination
      tags:
        - destination
  /v1/destinations/clone:
    post:
      operationId: cloneDestination
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationCloneRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Clone destination
      tags:
        - destination
  /v1/destinations/create:
    post:
      operationId: createDestination
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationCreate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Create a destination
      tags:
        - destination
  /v1/destinations/delete:
    post:
      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"
      summary: Delete the destination
      tags:
        - destination
  /v1/destinations/get:
    post:
      operationId: getDestination
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get configured destination
      tags:
        - destination
  /v1/destinations/list:
    post:
      operationId: listDestinationsForWorkspace
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WorkspaceIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationReadList"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: List configured destinations for a workspace
      tags:
        - destination
  /v1/destinations/search:
    post:
      operationId: searchDestinations
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationSearch"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationReadList"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Search destinations
      tags:
        - destination
  /v1/destinations/update:
    post:
      operationId: updateDestination
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DestinationRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Update a destination
      tags:
        - destination
  /v1/health:
    get:
      operationId: getHealthCheck
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/HealthCheckRead"
          description: Successful operation
      security: []
      summary: Health Check
      tags:
        - health
  /v1/jobs/cancel:
    post:
      operationId: cancelJob
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JobIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JobInfoRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Cancels a job
      tags:
        - jobs
  /v1/jobs/get:
    post:
      operationId: getJobInfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JobIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JobInfoRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get information about a job
      tags:
        - jobs
  /v1/jobs/get_debug_info:
    post:
      operationId: getJobDebugInfo
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JobIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JobDebugInfoRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Gets all information needed to debug this job
      tags:
        - jobs
  /v1/jobs/get_last_replication_job:
    post:
      operationId: getLastReplicationJob
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConnectionIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JobOptionalRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      tags:
        - jobs
  /v1/jobs/get_light:
    post:
      operationId: getJobInfoLight
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JobIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JobInfoLightRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get information about a job excluding attempt info and logs
      tags:
        - jobs
  /v1/jobs/get_normalization_status:
    post:
      operationId: getAttemptNormalizationStatusesForJob
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JobIdRequestBody"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AttemptNormalizationStatusReadList"
          description: Successful operation
      summary: Get normalization status to determine if we can bypass normalization phase
      tags:
        - jobs
        - internal
  /v1/jobs/list:
    post:
      operationId: listJobsFor
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/JobListRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/JobReadList"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Returns recent jobs for a connection. Jobs are returned in descending order by createdAt.
      tags:
        - jobs
  /v1/logs/get:
    post:
      operationId: getLogs
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LogsRequestBody"
        required: true
      responses:
        "200":
          content:
            text/plain:
              schema:
                format: binary
                type: string
          description: Returns the log file
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get logs
      tags:
        - logs
  /v1/notifications/try:
    post:
      operationId: tryNotificationConfig
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Notification"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NotificationRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Try sending a notifications
      tags:
        - notifications
  /v1/openapi:
    get:
      operationId: getOpenApiSpec
      responses:
        "200":
          content:
            text/plain:
              schema:
                format: binary
                type: string
          description: Returns the openapi specification file
      summary: Returns the openapi specification
      tags:
        - openapi
  /v1/operations/check:
    post:
      operationId: checkOperation
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OperatorConfiguration"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckOperationRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Check if an operation to be created is valid
      tags:
        - operation
  /v1/operations/create:
    post:
      operationId: createOperation
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OperationCreate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OperationRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Create an operation to be applied as part of a connection pipeline
      tags:
        - operation
  /v1/operations/delete:
    post:
      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"
      summary: Delete an operation
      tags:
        - operation
  /v1/operations/get:
    post:
      operationId: getOperation
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OperationIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OperationRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Returns an operation
      tags:
        - operation
  /v1/operations/list:
    post:
      description: List operations for connection.
      operationId: listOperationsForConnection
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConnectionIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OperationReadList"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Returns all operations for a connection.
      tags:
        - operation
  /v1/operations/update:
    post:
      operationId: updateOperation
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OperationUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OperationRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Update an operation
      tags:
        - operation
  /v1/scheduler/destinations/check_connection:
    post:
      operationId: executeDestinationCheckConnection
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DestinationCoreConfig"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckConnectionRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Run check connection for a given destination configuration
      tags:
        - scheduler
  /v1/scheduler/sources/check_connection:
    post:
      operationId: executeSourceCheckConnection
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceCoreConfig"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckConnectionRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Run check connection for a given source configuration
      tags:
        - scheduler
  /v1/scheduler/sources/discover_schema:
    post:
      operationId: executeSourceDiscoverSchema
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceCoreConfig"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceDiscoverSchemaRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Run discover schema for a given source a source configuration
      tags:
        - scheduler
  /v1/source_definition_specifications/get:
    post:
      operationId: getSourceDefinitionSpecification
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceDefinitionIdWithWorkspaceId"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceDefinitionSpecificationRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get specification for a SourceDefinition.
      tags:
        - source_definition_specification
  /v1/source_definitions/create_custom:
    post:
      operationId: createCustomSourceDefinition
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CustomSourceDefinitionCreate"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceDefinitionRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Creates a custom sourceDefinition for the given workspace
      tags:
        - source_definition
  /v1/source_definitions/delete:
    post:
      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"
      summary: Delete a source definition
      tags:
        - source_definition
  /v1/source_definitions/get:
    post:
      operationId: getSourceDefinition
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceDefinitionIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceDefinitionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get source
      tags:
        - source_definition
  /v1/source_definitions/get_for_workspace:
    post:
      operationId: getSourceDefinitionForWorkspace
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceDefinitionIdWithWorkspaceId"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceDefinitionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get a sourceDefinition that is configured for the given workspace
      tags:
        - source_definition
  /v1/source_definitions/grant_definition:
    post:
      operationId: grantSourceDefinitionToWorkspace
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceDefinitionIdWithWorkspaceId"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrivateSourceDefinitionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: grant a private, non-custom sourceDefinition to a given workspace
      tags:
        - source_definition
  /v1/source_definitions/list:
    post:
      operationId: listSourceDefinitions
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceDefinitionReadList"
          description: Successful operation
      summary: List all the sourceDefinitions the current Airbyte deployment is configured to use
      tags:
        - source_definition
  /v1/source_definitions/list_for_workspace:
    post:
      operationId: listSourceDefinitionsForWorkspace
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WorkspaceIdRequestBody"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceDefinitionReadList"
          description: Successful operation
      summary: List all the sourceDefinitions the given workspace is configured to use
      tags:
        - source_definition
  /v1/source_definitions/list_latest:
    post:
      description: Guaranteed to retrieve the latest information on supported sources.
      operationId: listLatestSourceDefinitions
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceDefinitionReadList"
          description: Successful operation
      summary: List the latest sourceDefinitions Airbyte supports
      tags:
        - source_definition
  /v1/source_definitions/list_private:
    post:
      operationId: listPrivateSourceDefinitions
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WorkspaceIdRequestBody"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PrivateSourceDefinitionReadList"
          description: Successful operation
      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.
      tags:
        - source_definition
  /v1/source_definitions/revoke_definition:
    post:
      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"
      summary: revoke a grant to a private, non-custom sourceDefinition from a given workspace
      tags:
        - source_definition
  /v1/source_definitions/update:
    post:
      operationId: updateSourceDefinition
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceDefinitionUpdate"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceDefinitionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Update a sourceDefinition
      tags:
        - source_definition
  /v1/source_oauths/complete_oauth:
    post:
      operationId: completeSourceOAuth
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CompleteSourceOauthRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CompleteOAuthResponse"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Given a source def ID generate an access/refresh token etc.
      tags:
        - source_oauth
  /v1/source_oauths/get_consent_url:
    post:
      operationId: getSourceOAuthConsent
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceOauthConsentRequest"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OAuthConsentRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Given a source connector definition ID, return the URL to the consent screen where to redirect the user to.
      tags:
        - source_oauth
  /v1/source_oauths/oauth_params/create:
    post:
      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"
      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.
      tags:
        - source_oauth
  /v1/sources/check_connection:
    post:
      operationId: checkConnectionToSource
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckConnectionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Check connection to the source
      tags:
        - source
  /v1/sources/check_connection_for_update:
    post:
      operationId: checkConnectionToSourceForUpdate
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckConnectionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Check connection for a proposed update to a source
      tags:
        - source
  /v1/sources/clone:
    post:
      operationId: cloneSource
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceCloneRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Clone source
      tags:
        - source
  /v1/sources/create:
    post:
      operationId: createSource
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceCreate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Create a source
      tags:
        - source
  /v1/sources/delete:
    post:
      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"
      summary: Delete a source
      tags:
        - source
  /v1/sources/discover_schema:
    post:
      operationId: discoverSchemaForSource
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceDiscoverSchemaRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceDiscoverSchemaRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Discover the schema catalog of the source
      tags:
        - source
  /v1/sources/get:
    post:
      operationId: getSource
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get source
      tags:
        - source
  /v1/sources/list:
    post:
      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":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceReadList"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: List sources for workspace
      tags:
        - source
  /v1/sources/most_recent_source_actor_catalog:
    post:
      operationId: getMostRecentSourceActorCatalog
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ActorCatalogWithUpdatedAt"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get most recent ActorCatalog for source
      tags:
        - source
  /v1/sources/search:
    post:
      operationId: searchSources
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceSearch"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceReadList"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Search sources
      tags:
        - source
  /v1/sources/update:
    post:
      operationId: updateSource
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SourceRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Update a source
      tags:
        - source
  /v1/sources/write_discover_catalog_result:
    post:
      operationId: writeDiscoverCatalogResult
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SourceDiscoverSchemaWriteRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DiscoverCatalogResult"
          description: Successful Operation
      summary: Should only called from worker, to write result from discover activity back to DB.
      tags:
        - source
        - internal
  /v1/state/create_or_update:
    post:
      operationId: createOrUpdateState
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConnectionStateCreateOrUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConnectionState"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Create or update the state for a connection.
      tags:
        - state
        - internal
  /v1/state/get:
    post:
      operationId: getState
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConnectionIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConnectionState"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Fetch the current state for a connection.
      tags:
        - state
  /v1/web_backend/check_updates:
    post:
      operationId: webBackendCheckUpdates
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebBackendCheckUpdatesRead"
          description: Successful operation
      summary: Returns a summary of source and destination definitions that could be updated.
      tags:
        - web_backend
  /v1/web_backend/connections/create:
    post:
      operationId: webBackendCreateConnection
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebBackendConnectionCreate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebBackendConnectionRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Create a connection
      tags:
        - web_backend
  /v1/web_backend/connections/get:
    post:
      operationId: webBackendGetConnection
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebBackendConnectionRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebBackendConnectionRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Get a connection
      tags:
        - web_backend
  /v1/web_backend/connections/list:
    post:
      operationId: webBackendListConnectionsForWorkspace
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebBackendConnectionListRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebBackendConnectionReadList"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Returns all non-deleted connections for a workspace.
      tags:
        - web_backend
  /v1/web_backend/connections/update:
    post:
      description: |
        Apply a patch-style update to a connection. Only fields present on the update request body will be updated.
        Any operations that lack an ID will be created. Then, the newly created operationId will be applied to the
        connection along with the rest of the operationIds in the request body.
        Apply a patch-style update to a connection. Only fields present on the update request body will be updated.
        Note that if a catalog is present in the request body, the connection's entire catalog will be replaced
        with the catalog from the request. This means that to modify a single stream, the entire new catalog
        containing the updated stream needs to be sent.
      operationId: webBackendUpdateConnection
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebBackendConnectionUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebBackendConnectionRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Update a connection
      tags:
        - web_backend
  /v1/web_backend/geographies/list:
    post:
      description: Returns all available geographies in which a data sync can run.
      operationId: webBackendListGeographies
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebBackendGeographiesListResult"
          description: Successful operation
      summary: |
        Returns available geographies can be selected to run data syncs in a particular geography.
        The 'auto' entry indicates that the sync will be automatically assigned to a geography according
        to the platform default behavior. Entries other than 'auto' are two-letter country codes that
        follow the ISO 3166-1 alpha-2 standard.
      tags:
        - web_backend
  /v1/web_backend/state/get_type:
    post:
      operationId: getStateType
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConnectionIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConnectionStateType"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Fetch the current state type for a connection.
      tags:
        - web_backend
  /v1/web_backend/workspace/state:
    post:
      operationId: webBackendGetWorkspaceState
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebBackendWorkspaceState"
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WebBackendWorkspaceStateResult"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Returns the current state of a workspace
      tags:
        - web_backend
  /v1/workspaces/create:
    post:
      operationId: createWorkspace
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WorkspaceCreate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WorkspaceRead"
          description: Successful operation
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Creates a workspace
      tags:
        - workspace
  /v1/workspaces/delete:
    post:
      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"
      summary: Deletes a workspace
      tags:
        - workspace
  /v1/workspaces/get:
    post:
      operationId: getWorkspace
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WorkspaceIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WorkspaceRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Find workspace by ID
      tags:
        - workspace
  /v1/workspaces/get_by_connection_id:
    post:
      operationId: getWorkspaceByConnectionId
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ConnectionIdRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WorkspaceRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Find workspace by connection id
      tags:
        - workspace
  /v1/workspaces/get_by_slug:
    post:
      operationId: getWorkspaceBySlug
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SlugRequestBody"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WorkspaceRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Find workspace by slug
      tags:
        - workspace
  /v1/workspaces/list:
    post:
      operationId: listWorkspaces
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WorkspaceReadList"
          description: Successful operation
      summary: List all workspaces registered in the current Airbyte deployment
      tags:
        - workspace
  /v1/workspaces/tag_feedback_status_as_done:
    post:
      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"
      summary: Update workspace feedback state
      tags:
        - workspace
  /v1/workspaces/update:
    post:
      operationId: updateWorkspace
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WorkspaceUpdate"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WorkspaceRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Update workspace state
      tags:
        - workspace
  /v1/workspaces/update_name:
    post:
      operationId: updateWorkspaceName
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WorkspaceUpdateName"
        required: true
      responses:
        "200":
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WorkspaceRead"
          description: Successful operation
        "404":
          $ref: "#/components/responses/NotFoundResponse"
        "422":
          $ref: "#/components/responses/InvalidInputResponse"
      summary: Update workspace name
      tags:
        - workspace
components:
  responses:
    ExceptionResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/KnownExceptionInfo"
      description: Exception occurred; see message for details.
    InvalidInputResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/InvalidInputExceptionInfo"
      description: Input failed validation
    NotFoundResponse:
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/NotFoundKnownExceptionInfo"
      description: Object with given id was not found.
  schemas:
    ActorCatalogWithUpdatedAt:
      description: A source actor catalog with the timestamp it was mostly recently updated
      properties:
        catalog:
          type: object
        updatedAt:
          format: int64
          type: integer
      type: object
    ActorDefinitionResourceRequirements:
      additionalProperties: false
      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.
      properties:
        default:
          $ref: "#/components/schemas/ResourceRequirements"
        jobSpecific:
          items:
            $ref: "#/components/schemas/JobTypeResourceLimit"
          type: array
      type: object
    AdvancedAuth:
      properties:
        authFlowType:
          enum:
            - oauth2.0
            - oauth1.0
          type: string
        oauthConfigSpecification:
          $ref: "#/components/schemas/OAuthConfigSpecification"
        predicateKey:
          description: Json Path to a field in the connectorSpecification that should exist for the advanced auth to be applicable.
          items:
            type: string
          type: array
        predicateValue:
          description: Value of the predicate_key fields for the advanced auth to be applicable.
          type: string
      type: object
    AirbyteArchive:
      description: Tarball Archive (.tar.gz) of Airbyte Configuration and Database
      format: binary
      type: string
    AirbyteCatalog:
      description: describes the available schema (catalog).
      properties:
        streams:
          items:
            $ref: "#/components/schemas/AirbyteStreamAndConfiguration"
          type: array
      required:
        - streams
      type: object
    AirbyteStream:
      additionalProperties: false
      description: the immutable schema defined by the source
      properties:
        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.
          items:
            type: string
          type: array
        jsonSchema:
          $ref: "#/components/schemas/StreamJsonSchema"
        name:
          description: Stream's name.
          type: string
        namespace:
          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.
          type: string
        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
        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.
          items:
            items:
              type: string
            type: array
          type: array
        supportedSyncModes:
          items:
            $ref: "#/components/schemas/SyncMode"
          type: array
      required:
        - name
        - json_schema
      type: object
    AirbyteStreamAndConfiguration:
      additionalProperties: false
      description: each stream is split in two parts; the immutable schema from source and mutable configuration for destination
      properties:
        config:
          $ref: "#/components/schemas/AirbyteStreamConfiguration"
        stream:
          $ref: "#/components/schemas/AirbyteStream"
      type: object
    AirbyteStreamConfiguration:
      additionalProperties: false
      description: the mutable part of the stream to configure the destination
      properties:
        aliasName:
          description: Alias name to the stream to be used in the destination
          type: string
        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.
          items:
            type: string
          type: array
        destinationSyncMode:
          $ref: "#/components/schemas/DestinationSyncMode"
        fieldSelectionEnabled:
          description: Whether field selection should be enabled. If this is true, only the properties in `selectedFields` will be included.
          type: boolean
        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.
          items:
            items:
              type: string
            type: array
          type: array
        selected:
          description: If this is true, the stream is selected with all of its properties. For new connections, this considers if the stream is suggested or not
          type: boolean
        selectedFields:
          description: Paths to the fields that will be included in the configured catalog. This must be set if `fieldSelectedEnabled` is set. An empty list indicates that no properties will be included.
          items:
            $ref: "#/components/schemas/SelectedFieldInfo"
          type: array
        suggested:
          description: Does the connector suggest that this stream be enabled by default?
          type: boolean
        syncMode:
          $ref: "#/components/schemas/SyncMode"
      required:
        - syncMode
        - destinationSyncMode
      type: object
    AttemptFailureOrigin:
      description: Indicates where the error originated. If not set, the origin of error is not well known.
      enum:
        - source
        - destination
        - replication
        - persistence
        - normalization
        - dbt
        - airbyte_platform
        - unknown
      type: string
    AttemptFailureReason:
      properties:
        externalMessage:
          type: string
        failureOrigin:
          $ref: "#/components/schemas/AttemptFailureOrigin"
        failureType:
          $ref: "#/components/schemas/AttemptFailureType"
        internalMessage:
          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
        stacktrace:
          type: string
        timestamp:
          format: int64
          type: integer
      required:
        - timestamp
      type: object
    AttemptFailureSummary:
      properties:
        failures:
          items:
            $ref: "#/components/schemas/AttemptFailureReason"
          type: array
        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
      required:
        - failures
      type: object
    AttemptFailureType:
      description: Categorizes well known errors into types for programmatic handling. If not set, the type of error is not well known.
      enum:
        - config_error
        - system_error
        - manual_cancellation
        - refresh_schema
      type: string
    AttemptInfoRead:
      properties:
        attempt:
          $ref: "#/components/schemas/AttemptRead"
        logs:
          $ref: "#/components/schemas/LogRead"
      required:
        - attempt
        - logs
      type: object
    AttemptNormalizationStatusRead:
      properties:
        attemptNumber:
          $ref: "#/components/schemas/AttemptNumber"
        hasNormalizationFailed:
          type: boolean
        hasRecordsCommitted:
          type: boolean
        recordsCommitted:
          format: int64
          type: integer
      type: object
    AttemptNormalizationStatusReadList:
      properties:
        attemptNormalizationStatuses:
          items:
            $ref: "#/components/schemas/AttemptNormalizationStatusRead"
          type: array
      type: object
    AttemptNumber:
      format: int32
      type: integer
    AttemptRead:
      properties:
        bytesSynced:
          format: int64
          type: integer
        createdAt:
          format: int64
          type: integer
        endedAt:
          format: int64
          type: integer
        failureSummary:
          $ref: "#/components/schemas/AttemptFailureSummary"
        id:
          format: int64
          type: integer
        recordsSynced:
          format: int64
          type: integer
        status:
          $ref: "#/components/schemas/AttemptStatus"
        streamStats:
          items:
            $ref: "#/components/schemas/AttemptStreamStats"
          type: array
        totalStats:
          $ref: "#/components/schemas/AttemptStats"
        updatedAt:
          format: int64
          type: integer
      required:
        - id
        - status
        - createdAt
        - updatedAt
      type: object
    AttemptStats:
      properties:
        bytesEmitted:
          format: int64
          type: integer
        estimatedBytes:
          format: int64
          type: integer
        estimatedRecords:
          format: int64
          type: integer
        recordsCommitted:
          format: int64
          type: integer
        recordsEmitted:
          format: int64
          type: integer
        stateMessagesEmitted:
          format: int64
          type: integer
      type: object
    AttemptStatus:
      enum:
        - running
        - failed
        - succeeded
      type: string
    AttemptStreamStats:
      properties:
        stats:
          $ref: "#/components/schemas/AttemptStats"
        streamName:
          type: string
        streamNamespace:
          type: string
      required:
        - streamName
        - stats
      type: object
    AttemptSyncConfig:
      properties:
        destinationConfiguration:
          $ref: "#/components/schemas/DestinationConfiguration"
        sourceConfiguration:
          $ref: "#/components/schemas/SourceConfiguration"
        state:
          $ref: "#/components/schemas/ConnectionState"
      required:
        - sourceConfiguration
        - destinationConfiguration
      type: object
    AuthSpecification:
      properties:
        auth_type:
          enum:
            - oauth2.0
          type: string
        oauth2Specification:
          $ref: "#/components/schemas/OAuth2Specification"
      type: object
    CatalogDiff:
      description: Describes the difference between two Airbyte catalogs.
      properties:
        transforms:
          description: list of stream transformations. order does not matter.
          items:
            $ref: "#/components/schemas/StreamTransform"
          type: array
      required:
        - transforms
      type: object
    CheckConnectionRead:
      properties:
        jobInfo:
          $ref: "#/components/schemas/SynchronousJobRead"
        message:
          type: string
        status:
          enum:
            - succeeded
            - failed
          type: string
      required:
        - status
        - jobInfo
      type: object
    CheckOperationRead:
      properties:
        message:
          type: string
        status:
          enum:
            - succeeded
            - failed
          type: string
      required:
        - status
      type: object
    CompleteDestinationOAuthRequest:
      properties:
        destinationDefinitionId:
          $ref: "#/components/schemas/DestinationDefinitionId"
        destinationId:
          $ref: "#/components/schemas/DestinationId"
        oAuthInputConfiguration:
          $ref: "#/components/schemas/OAuthInputConfiguration"
        queryParams:
          additionalProperties: true
          description: The query parameters present in the redirect URL after a user granted consent e.g auth code
          type: object
        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
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - destinationDefinitionId
        - workspaceId
      type: object
    CompleteOAuthResponse:
      additionalProperties: true
      type: object
    CompleteSourceOauthRequest:
      properties:
        oAuthInputConfiguration:
          $ref: "#/components/schemas/OAuthInputConfiguration"
        queryParams:
          additionalProperties: true
          description: The query parameters present in the redirect URL after a user granted consent e.g auth code
          type: object
        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
        sourceDefinitionId:
          $ref: "#/components/schemas/SourceDefinitionId"
        sourceId:
          $ref: "#/components/schemas/SourceId"
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - sourceDefinitionId
        - workspaceId
      type: object
    ConnectionCreate:
      properties:
        destinationId:
          $ref: "#/components/schemas/DestinationId"
        geography:
          $ref: "#/components/schemas/Geography"
        name:
          description: Optional name of the connection
          type: string
        namespaceDefinition:
          $ref: "#/components/schemas/NamespaceDefinitionType"
        namespaceFormat:
          default: null
          description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
          example: ${SOURCE_NAMESPACE}
          type: string
        nonBreakingChangesPreference:
          $ref: "#/components/schemas/NonBreakingChangesPreference"
        notifySchemaChanges:
          type: boolean
        operationIds:
          items:
            $ref: "#/components/schemas/OperationId"
          type: array
        prefix:
          description: Prefix that will be prepended to the name of each stream when it is written to the destination.
          type: string
        resourceRequirements:
          $ref: "#/components/schemas/ResourceRequirements"
        schedule:
          $ref: "#/components/schemas/ConnectionSchedule"
        scheduleData:
          $ref: "#/components/schemas/ConnectionScheduleData"
        scheduleType:
          $ref: "#/components/schemas/ConnectionScheduleType"
        sourceCatalogId:
          format: uuid
          type: string
        sourceId:
          $ref: "#/components/schemas/SourceId"
        status:
          $ref: "#/components/schemas/ConnectionStatus"
        syncCatalog:
          $ref: "#/components/schemas/AirbyteCatalog"
      required:
        - sourceId
        - destinationId
        - status
      type: object
    ConnectionId:
      format: uuid
      type: string
    ConnectionIdRequestBody:
      properties:
        connectionId:
          $ref: "#/components/schemas/ConnectionId"
      required:
        - connectionId
      type: object
    ConnectionRead:
      properties:
        breakingChange:
          type: boolean
        connectionId:
          $ref: "#/components/schemas/ConnectionId"
        destinationId:
          $ref: "#/components/schemas/DestinationId"
        geography:
          $ref: "#/components/schemas/Geography"
        name:
          type: string
        namespaceDefinition:
          $ref: "#/components/schemas/NamespaceDefinitionType"
        namespaceFormat:
          default: null
          description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
          example: ${SOURCE_NAMESPACE}
          type: string
        nonBreakingChangesPreference:
          $ref: "#/components/schemas/NonBreakingChangesPreference"
        notifySchemaChanges:
          type: boolean
        operationIds:
          items:
            $ref: "#/components/schemas/OperationId"
          type: array
        prefix:
          description: Prefix that will be prepended to the name of each stream when it is written to the destination.
          type: string
        resourceRequirements:
          $ref: "#/components/schemas/ResourceRequirements"
        schedule:
          $ref: "#/components/schemas/ConnectionSchedule"
        scheduleData:
          $ref: "#/components/schemas/ConnectionScheduleData"
        scheduleType:
          $ref: "#/components/schemas/ConnectionScheduleType"
        sourceCatalogId:
          format: uuid
          type: string
        sourceId:
          $ref: "#/components/schemas/SourceId"
        status:
          $ref: "#/components/schemas/ConnectionStatus"
        syncCatalog:
          $ref: "#/components/schemas/AirbyteCatalog"
      required:
        - connectionId
        - name
        - sourceId
        - destinationId
        - syncCatalog
        - status
        - breakingChange
      type: object
    ConnectionReadList:
      properties:
        connections:
          items:
            $ref: "#/components/schemas/ConnectionRead"
          type: array
      required:
        - connections
      type: object
    ConnectionSchedule:
      description: if null, then no schedule is set.
      properties:
        timeUnit:
          enum:
            - minutes
            - hours
            - days
            - weeks
            - months
          type: string
        units:
          format: int64
          type: integer
      required:
        - units
        - timeUnit
      type: object
    ConnectionScheduleData:
      description: schedule for when the the connection should run, per the schedule type
      properties:
        basicSchedule:
          properties:
            timeUnit:
              enum:
                - minutes
                - hours
                - days
                - weeks
                - months
              type: string
            units:
              format: int64
              type: integer
          required:
            - timeUnit
            - units
          type: object
        cron:
          properties:
            cronExpression:
              type: string
            cronTimeZone:
              type: string
          required:
            - cronExpression
            - cronTimeZone
          type: object
      type: object
    ConnectionScheduleType:
      description: determine how the schedule data should be interpreted
      enum:
        - manual
        - basic
        - cron
      type: string
    ConnectionSearch:
      properties:
        connectionId:
          $ref: "#/components/schemas/ConnectionId"
        destination:
          $ref: "#/components/schemas/DestinationSearch"
        destinationId:
          $ref: "#/components/schemas/DestinationId"
        name:
          type: string
        namespaceDefinition:
          $ref: "#/components/schemas/NamespaceDefinitionType"
        namespaceFormat:
          default: null
          description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
          example: ${SOURCE_NAMESPACE}
          type: string
        prefix:
          description: Prefix that will be prepended to the name of each stream when it is written to the destination.
          type: string
        schedule:
          $ref: "#/components/schemas/ConnectionSchedule"
        scheduleData:
          $ref: "#/components/schemas/ConnectionScheduleData"
        scheduleType:
          $ref: "#/components/schemas/ConnectionScheduleType"
        source:
          $ref: "#/components/schemas/SourceSearch"
        sourceId:
          $ref: "#/components/schemas/SourceId"
        status:
          $ref: "#/components/schemas/ConnectionStatus"
      type: object
    ConnectionState:
      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.
      properties:
        connectionId:
          $ref: "#/components/schemas/ConnectionId"
        globalState:
          $ref: "#/components/schemas/GlobalState"
        state:
          $ref: "#/components/schemas/StateBlob"
        stateType:
          $ref: "#/components/schemas/ConnectionStateType"
        streamState:
          items:
            $ref: "#/components/schemas/StreamState"
          type: array
      required:
        - connectionId
        - stateType
      type: object
    ConnectionStateCreateOrUpdate:
      properties:
        connectionId:
          $ref: "#/components/schemas/ConnectionId"
        connectionState:
          $ref: "#/components/schemas/ConnectionState"
      required:
        - connectionId
        - connectionState
      type: object
    ConnectionStateType:
      enum:
        - global
        - stream
        - legacy
        - not_set
      type: string
    ConnectionStatus:
      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
      type: string
    ConnectionUpdate:
      description: Used to apply a patch-style update to a connection, which means that null properties remain unchanged
      properties:
        breakingChange:
          type: boolean
        connectionId:
          $ref: "#/components/schemas/ConnectionId"
        geography:
          $ref: "#/components/schemas/Geography"
        name:
          description: Name that will be set to this connection
          type: string
        namespaceDefinition:
          $ref: "#/components/schemas/NamespaceDefinitionType"
        namespaceFormat:
          default: null
          description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
          example: ${SOURCE_NAMESPACE}
          type: string
        nonBreakingChangesPreference:
          $ref: "#/components/schemas/NonBreakingChangesPreference"
        notifySchemaChanges:
          type: boolean
        operationIds:
          items:
            $ref: "#/components/schemas/OperationId"
          type: array
        prefix:
          description: Prefix that will be prepended to the name of each stream when it is written to the destination.
          type: string
        resourceRequirements:
          $ref: "#/components/schemas/ResourceRequirements"
        schedule:
          $ref: "#/components/schemas/ConnectionSchedule"
        scheduleData:
          $ref: "#/components/schemas/ConnectionScheduleData"
        scheduleType:
          $ref: "#/components/schemas/ConnectionScheduleType"
        sourceCatalogId:
          format: uuid
          type: string
        status:
          $ref: "#/components/schemas/ConnectionStatus"
        syncCatalog:
          $ref: "#/components/schemas/AirbyteCatalog"
      required:
        - connectionId
      type: object
    CustomDestinationDefinitionCreate:
      properties:
        destinationDefinition:
          $ref: "#/components/schemas/DestinationDefinitionCreate"
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - workspaceId
        - destinationDefinition
      type: object
    CustomSourceDefinitionCreate:
      properties:
        sourceDefinition:
          $ref: "#/components/schemas/SourceDefinitionCreate"
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - workspaceId
        - sourceDefinition
      type: object
    CustomerId:
      format: uuid
      type: string
    CustomerioNotificationConfiguration:
      type: object
    DataType:
      enum:
        - string
        - number
        - boolean
        - object
        - array
      type: string
    DbMigrationExecutionRead:
      properties:
        executedMigrations:
          items:
            $ref: "#/components/schemas/DbMigrationRead"
          type: array
        initialVersion:
          type: string
        targetVersion:
          type: string
      type: object
    DbMigrationRead:
      properties:
        migratedAt:
          format: int64
          type: integer
        migratedBy:
          type: string
        migrationDescription:
          type: string
        migrationScript:
          type: string
        migrationState:
          $ref: "#/components/schemas/DbMigrationState"
        migrationType:
          type: string
        migrationVersion:
          type: string
      required:
        - migrationType
        - migrationVersion
        - migrationDescription
      type: object
    DbMigrationReadList:
      properties:
        migrations:
          items:
            $ref: "#/components/schemas/DbMigrationRead"
          type: array
      type: object
    DbMigrationRequestBody:
      properties:
        database:
          type: string
      required:
        - database
      type: object
    DbMigrationState:
      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
      type: string
    DestinationAuthSpecification:
      $ref: "#/components/schemas/AuthSpecification"
    DestinationCloneConfiguration:
      properties:
        connectionConfiguration:
          $ref: "#/components/schemas/DestinationConfiguration"
        name:
          type: string
      type: object
    DestinationCloneRequestBody:
      description: The values required to configure the destination. The schema for this should have an id of the existing destination along with the configuration you want to change in case.
      properties:
        destinationCloneId:
          $ref: "#/components/schemas/DestinationId"
        destinationConfiguration:
          $ref: "#/components/schemas/DestinationCloneConfiguration"
      required:
        - destinationCloneId
      type: object
    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:
      properties:
        connectionConfiguration:
          $ref: "#/components/schemas/DestinationConfiguration"
        destinationDefinitionId:
          $ref: "#/components/schemas/DestinationDefinitionId"
        destinationId:
          $ref: "#/components/schemas/DestinationId"
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - workspaceId
        - destinationDefinitionId
        - connectionConfiguration
      type: object
    DestinationCreate:
      properties:
        connectionConfiguration:
          $ref: "#/components/schemas/DestinationConfiguration"
        destinationDefinitionId:
          $ref: "#/components/schemas/DestinationDefinitionId"
        name:
          type: string
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - name
        - workspaceId
        - destinationDefinitionId
        - connectionConfiguration
      type: object
    DestinationDefinitionCreate:
      properties:
        dockerImageTag:
          type: string
        dockerRepository:
          type: string
        documentationUrl:
          format: uri
          type: string
        icon:
          type: string
        name:
          type: string
        resourceRequirements:
          $ref: "#/components/schemas/ActorDefinitionResourceRequirements"
      required:
        - name
        - dockerRepository
        - dockerImageTag
        - documentationUrl
      type: object
    DestinationDefinitionId:
      format: uuid
      type: string
    DestinationDefinitionIdRequestBody:
      properties:
        destinationDefinitionId:
          $ref: "#/components/schemas/DestinationDefinitionId"
      required:
        - destinationDefinitionId
      type: object
    DestinationDefinitionIdWithWorkspaceId:
      properties:
        destinationDefinitionId:
          $ref: "#/components/schemas/DestinationDefinitionId"
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - destinationDefinitionId
        - workspaceId
      type: object
    DestinationDefinitionRead:
      properties:
        destinationDefinitionId:
          $ref: "#/components/schemas/DestinationDefinitionId"
        dockerImageTag:
          type: string
        dockerRepository:
          type: string
        documentationUrl:
          format: uri
          type: string
        icon:
          type: string
        name:
          type: string
        normalizationConfig:
          $ref: "#/components/schemas/NormalizationDestinationDefinitionConfig"
        protocolVersion:
          description: The Airbyte Protocol version supported by the connector
          type: string
        releaseDate:
          description: The date when this connector was first released, in yyyy-mm-dd format.
          format: date
          type: string
        releaseStage:
          $ref: "#/components/schemas/ReleaseStage"
        resourceRequirements:
          $ref: "#/components/schemas/ActorDefinitionResourceRequirements"
        supportsDbt:
          description: an optional flag indicating whether DBT is used in the normalization. If the flag value is NULL - DBT is not used.
          type: boolean
      required:
        - destinationDefinitionId
        - name
        - dockerRepository
        - dockerImageTag
        - documentationUrl
        - supportsDbt
        - normalizationConfig
      type: object
    DestinationDefinitionReadList:
      properties:
        destinationDefinitions:
          items:
            $ref: "#/components/schemas/DestinationDefinitionRead"
          type: array
      required:
        - destinationDefinitions
      type: object
    DestinationDefinitionSpecification:
      description: The specification for what values are required to configure the destinationDefinition.
      example:
        user:
          type: string
    DestinationDefinitionSpecificationRead:
      properties:
        advancedAuth:
          $ref: "#/components/schemas/AdvancedAuth"
        authSpecification:
          $ref: "#/components/schemas/DestinationAuthSpecification"
        connectionSpecification:
          $ref: "#/components/schemas/DestinationDefinitionSpecification"
        destinationDefinitionId:
          $ref: "#/components/schemas/DestinationDefinitionId"
        documentationUrl:
          type: string
        jobInfo:
          $ref: "#/components/schemas/SynchronousJobRead"
        supportedDestinationSyncModes:
          items:
            $ref: "#/components/schemas/DestinationSyncMode"
          type: array
      required:
        - destinationDefinitionId
        - jobInfo
      type: object
    DestinationDefinitionUpdate:
      properties:
        destinationDefinitionId:
          $ref: "#/components/schemas/DestinationDefinitionId"
        dockerImageTag:
          type: string
        resourceRequirements:
          $ref: "#/components/schemas/ActorDefinitionResourceRequirements"
      required:
        - destinationDefinitionId
        - dockerImageag
      type: object
    DestinationId:
      format: uuid
      type: string
    DestinationIdRequestBody:
      properties:
        destinationId:
          $ref: "#/components/schemas/DestinationId"
      required:
        - destinationId
      type: object
    DestinationOauthConsentRequest:
      properties:
        destinationDefinitionId:
          $ref: "#/components/schemas/DestinationDefinitionId"
        destinationId:
          $ref: "#/components/schemas/DestinationId"
        oAuthInputConfiguration:
          $ref: "#/components/schemas/OAuthInputConfiguration"
        redirectUrl:
          description: The url to redirect to after getting the user consent
          type: string
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - destinationDefinitionId
        - workspaceId
        - redirectUrl
      type: object
    DestinationRead:
      properties:
        connectionConfiguration:
          $ref: "#/components/schemas/DestinationConfiguration"
        destinationDefinitionId:
          $ref: "#/components/schemas/DestinationDefinitionId"
        destinationId:
          $ref: "#/components/schemas/DestinationId"
        destinationName:
          type: string
        icon:
          type: string
        name:
          type: string
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - destinationDefinitionId
        - destinationId
        - workspaceId
        - connectionConfiguration
        - name
        - destinationName
      type: object
    DestinationReadList:
      properties:
        destinations:
          items:
            $ref: "#/components/schemas/DestinationRead"
          type: array
      required:
        - destinations
      type: object
    DestinationSearch:
      properties:
        connectionConfiguration:
          $ref: "#/components/schemas/DestinationConfiguration"
        destinationDefinitionId:
          $ref: "#/components/schemas/DestinationDefinitionId"
        destinationId:
          $ref: "#/components/schemas/DestinationId"
        destinationName:
          type: string
        name:
          type: string
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      type: object
    DestinationSnippetRead:
      properties:
        destinationDefinitionId:
          $ref: "#/components/schemas/DestinationDefinitionId"
        destinationId:
          $ref: "#/components/schemas/DestinationId"
        destinationName:
          type: string
        icon:
          type: string
        name:
          type: string
      required:
        - destinationId
        - name
        - destinationDefinitionId
        - destinationName
      type: object
    DestinationSyncMode:
      enum:
        - append
        - overwrite
        - append_dedup
      type: string
    DestinationUpdate:
      properties:
        connectionConfiguration:
          $ref: "#/components/schemas/DestinationConfiguration"
        destinationId:
          $ref: "#/components/schemas/DestinationId"
        name:
          type: string
      required:
        - destinationId
        - connectionConfiguration
        - name
      type: object
    DiscoverCatalogResult:
      properties:
        catalogId:
          format: uuid
          type: string
      required:
        - catalogId
      type: object
    FieldAdd:
      properties:
        schema:
          $ref: "#/components/schemas/FieldSchema"
      type: object
    FieldName:
      description: A field name is a list of strings that form the path to the field.
      items:
        type: string
      type: array
    FieldRemove:
      properties:
        schema:
          $ref: "#/components/schemas/FieldSchema"
      type: object
    FieldSchema:
      description: JSONSchema representation of the field
      type: object
    FieldSchemaUpdate:
      properties:
        newSchema:
          $ref: "#/components/schemas/FieldSchema"
        oldSchema:
          $ref: "#/components/schemas/FieldSchema"
      required:
        - oldSchema
        - newSchema
      type: object
    FieldTransform:
      description: Describes the difference between two Streams.
      properties:
        addField:
          $ref: "#/components/schemas/FieldAdd"
        breaking:
          type: boolean
        fieldName:
          $ref: "#/components/schemas/FieldName"
        removeField:
          $ref: "#/components/schemas/FieldRemove"
        transformType:
          enum:
            - add_field
            - remove_field
            - update_field_schema
          type: string
        updateFieldSchema:
          $ref: "#/components/schemas/FieldSchemaUpdate"
      required:
        - transformType
        - fieldName
        - breaking
      type: object
    Geography:
      enum:
        - auto
        - us
        - eu
      type: string
    GlobalState:
      properties:
        shared_state:
          $ref: "#/components/schemas/StateBlob"
        streamStates:
          items:
            $ref: "#/components/schemas/StreamState"
          type: array
      required:
        - streamStates
      type: object
    HealthCheckRead:
      properties:
        available:
          type: boolean
      required:
        - available
      type: object
    ImportRead:
      properties:
        reason:
          type: string
        status:
          enum:
            - succeeded
            - failed
          type: string
      required:
        - status
      type: object
    ImportRequestBody:
      properties:
        resourceId:
          $ref: "#/components/schemas/ResourceId"
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - resourceId
        - workspaceId
      type: object
    InternalOperationResult:
      properties:
        succeeded:
          type: boolean
      required:
        - succeeded
      type: object
    InvalidInputExceptionInfo:
      properties:
        exceptionClassName:
          type: string
        exceptionStack:
          items:
            type: string
          type: array
        message:
          type: string
        validationErrors:
          items:
            $ref: "#/components/schemas/InvalidInputProperty"
          type: array
      required:
        - message
        - validationErrors
      type: object
    InvalidInputProperty:
      properties:
        invalidValue:
          type: string
        message:
          type: string
        propertyPath:
          type: string
      required:
        - propertyPath
      type: object
    JobConfigType:
      enum:
        - check_connection_source
        - check_connection_destination
        - discover_schema
        - get_spec
        - sync
        - reset_connection
      type: string
    JobCreatedAt:
      description: epoch time of the latest sync job. null if no sync job has taken place.
      format: int64
      type: integer
    JobDebugInfoRead:
      properties:
        attempts:
          items:
            $ref: "#/components/schemas/AttemptInfoRead"
          type: array
        job:
          $ref: "#/components/schemas/JobDebugRead"
        workflowState:
          $ref: "#/components/schemas/WorkflowStateRead"
      required:
        - job
        - attempts
      type: object
    JobDebugRead:
      properties:
        airbyteVersion:
          type: string
        configId:
          type: string
        configType:
          $ref: "#/components/schemas/JobConfigType"
        destinationDefinition:
          $ref: "#/components/schemas/DestinationDefinitionRead"
        id:
          $ref: "#/components/schemas/JobId"
        sourceDefinition:
          $ref: "#/components/schemas/SourceDefinitionRead"
        status:
          $ref: "#/components/schemas/JobStatus"
      required:
        - id
        - configType
        - configId
        - status
        - airbyteVersion
        - sourceDefinition
        - destinationDefinition
      type: object
    JobId:
      format: int64
      type: integer
    JobIdRequestBody:
      properties:
        id:
          $ref: "#/components/schemas/JobId"
      required:
        - id
      type: object
    JobInfoLightRead:
      properties:
        job:
          $ref: "#/components/schemas/JobRead"
      required:
        - job
      type: object
    JobInfoRead:
      properties:
        attempts:
          items:
            $ref: "#/components/schemas/AttemptInfoRead"
          type: array
        job:
          $ref: "#/components/schemas/JobRead"
      required:
        - job
        - attempts
      type: object
    JobListRequestBody:
      properties:
        configId:
          type: string
        configTypes:
          items:
            $ref: "#/components/schemas/JobConfigType"
          type: array
        includingJobId:
          $ref: "#/components/schemas/JobId"
          description: If the job with this ID exists for the specified connection, returns the number of pages of jobs necessary to include this job. Returns an empty list if this job is specified and cannot be found in this connection.
        pagination:
          $ref: "#/components/schemas/Pagination"
      required:
        - configTypes
        - configId
      type: object
    JobOptionalRead:
      properties:
        job:
          $ref: "#/components/schemas/JobRead"
      type: object
    JobRead:
      properties:
        configId:
          type: string
        configType:
          $ref: "#/components/schemas/JobConfigType"
        createdAt:
          format: int64
          type: integer
        id:
          $ref: "#/components/schemas/JobId"
        resetConfig:
          $ref: "#/components/schemas/ResetConfig"
        startedAt:
          format: int64
          type: integer
        status:
          $ref: "#/components/schemas/JobStatus"
        updatedAt:
          format: int64
          type: integer
      required:
        - id
        - configType
        - configId
        - createdAt
        - updatedAt
        - status
      type: object
    JobReadList:
      properties:
        jobs:
          items:
            $ref: "#/components/schemas/JobWithAttemptsRead"
          type: array
        totalJobCount:
          description: the total count of jobs for the specified connection
          format: int64
          type: integer
      required:
        - jobs
        - totalJobCount
      type: object
    JobStatus:
      enum:
        - pending
        - running
        - incomplete
        - failed
        - succeeded
        - cancelled
      type: string
    JobType:
      description: enum that describes the different types of jobs that the platform runs.
      enum:
        - get_spec
        - check_connection
        - discover_schema
        - sync
        - reset_connection
        - connection_updater
        - replicate
      type: string
    JobTypeResourceLimit:
      additionalProperties: false
      description: sets resource requirements for a specific job type for an actor definition. these values override the default, if both are set.
      properties:
        jobType:
          $ref: "#/components/schemas/JobType"
        resourceRequirements:
          $ref: "#/components/schemas/ResourceRequirements"
      required:
        - jobType
        - resourceRequirements
      type: object
    JobWithAttemptsRead:
      properties:
        attempts:
          items:
            $ref: "#/components/schemas/AttemptRead"
          type: array
        job:
          $ref: "#/components/schemas/JobRead"
      type: object
    KnownExceptionInfo:
      properties:
        exceptionClassName:
          type: string
        exceptionStack:
          items:
            type: string
          type: array
        message:
          type: string
        rootCauseExceptionClassName:
          type: string
        rootCauseExceptionStack:
          items:
            type: string
          type: array
      required:
        - message
      type: object
    LogRead:
      properties:
        logLines:
          items:
            type: string
          type: array
      required:
        - logLines
      type: object
    LogType:
      description: type/source of logs produced
      enum:
        - server
        - scheduler
      type: string
    LogsRequestBody:
      properties:
        logType:
          $ref: "#/components/schemas/LogType"
      required:
        - logType
      type: object
    NamespaceDefinitionType:
      description: Method used for computing final namespace in destination
      enum:
        - source
        - destination
        - customformat
      type: string
    NonBreakingChangesPreference:
      enum:
        - ignore
        - disable
      type: string
    NormalizationDestinationDefinitionConfig:
      additionalProperties: false
      description: describes a normalization config for destination definition
      properties:
        normalizationIntegrationType:
          description: a field indicating the type of integration dialect to use for normalization.
          type: string
        normalizationRepository:
          description: a field indicating the name of the repository to be used for normalization. If the value of the flag is NULL - normalization is not used.
          type: string
        normalizationTag:
          description: a field indicating the tag of the docker repository to be used for normalization.
          type: string
        supported:
          default: false
          description: whether the destination definition supports normalization.
          type: boolean
      required:
        - supported
      type: object
    NotFoundKnownExceptionInfo:
      properties:
        exceptionClassName:
          type: string
        exceptionStack:
          items:
            type: string
          type: array
        id:
          type: string
        message:
          type: string
        rootCauseExceptionClassName:
          type: string
        rootCauseExceptionStack:
          items:
            type: string
          type: array
      required:
        - message
      type: object
    Notification:
      properties:
        customerioConfiguration:
          $ref: "#/components/schemas/CustomerioNotificationConfiguration"
        notificationType:
          $ref: "#/components/schemas/NotificationType"
        sendOnFailure:
          default: true
          type: boolean
        sendOnSuccess:
          default: false
          type: boolean
        slackConfiguration:
          $ref: "#/components/schemas/SlackNotificationConfiguration"
      required:
        - notificationType
        - sendOnSuccess
        - sendOnFailure
      type: object
    NotificationRead:
      properties:
        message:
          type: string
        status:
          enum:
            - succeeded
            - failed
          type: string
      required:
        - status
      type: object
    NotificationType:
      enum:
        - slack
        - customerio
      type: string
    OAuth2Specification:
      description: An object containing any metadata needed to describe this connector's Oauth flow
      properties:
        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']]
          items:
            description: A list of strings denoting a pointer into the rootObject for where to find this property
            items:
              type: string
            type: array
          type: array
        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.
          items:
            description: A list of strings denoting a pointer into the rootObject for where to find this property
            items:
              type: string
            type: array
          type: array
        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] 
          example:
            - path
            - 1
          items: {}
          type: array
      required:
        - rootObject
        - oauthFlowInitParameters
        - oauthFlowOutputParameters
      type: object
    OAuthConfigSpecification:
      properties:
        completeOAuthOutputSpecification:
          $ref: "#/components/schemas/OAuthConfiguration"
          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']
                  }
                }
        completeOAuthServerInputSpecification:
          $ref: "#/components/schemas/OAuthConfiguration"
          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
                  }
                }
        completeOAuthServerOutputSpecification:
          $ref: "#/components/schemas/OAuthConfiguration"
          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']
                    }
                  }
        oauthUserInputFromConnectorConfigSpecification:
          $ref: "#/components/schemas/OAuthConfiguration"
          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']
                }
              }
      type: object
    OAuthConfiguration:
      description: The values required to configure OAuth flows. The schema for this must match the `OAuthConfigSpecification.oauthUserInputFromConnectorConfigSpecification` schema.
    OAuthConsentRead:
      properties:
        consentUrl:
          type: string
      required:
        - consentUrl
      type: object
    OAuthInputConfiguration:
      $ref: "#/components/schemas/OAuthConfiguration"
    OperationCreate:
      properties:
        name:
          type: string
        operatorConfiguration:
          $ref: "#/components/schemas/OperatorConfiguration"
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - name
        - operatorConfiguration
        - workspaceId
      type: object
    OperationId:
      format: uuid
      type: string
    OperationIdRequestBody:
      properties:
        operationId:
          $ref: "#/components/schemas/OperationId"
      required:
        - operationId
      type: object
    OperationRead:
      properties:
        name:
          type: string
        operationId:
          $ref: "#/components/schemas/OperationId"
        operatorConfiguration:
          $ref: "#/components/schemas/OperatorConfiguration"
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - operationId
        - name
        - operatorConfiguration
        - workspaceId
      type: object
    OperationReadList:
      properties:
        operations:
          items:
            $ref: "#/components/schemas/OperationRead"
          type: array
      required:
        - operations
      type: object
    OperationUpdate:
      properties:
        name:
          type: string
        operationId:
          $ref: "#/components/schemas/OperationId"
        operatorConfiguration:
          $ref: "#/components/schemas/OperatorConfiguration"
      required:
        - operationId
        - name
        - operatorConfiguration
      type: object
    OperatorConfiguration:
      properties:
        dbt:
          $ref: "#/components/schemas/OperatorDbt"
        normalization:
          $ref: "#/components/schemas/OperatorNormalization"
        operatorType:
          $ref: "#/components/schemas/OperatorType"
        webhook:
          $ref: "#/components/schemas/OperatorWebhook"
      required:
        - operatorType
      type: object
    OperatorDbt:
      properties:
        dbtArguments:
          type: string
        dockerImage:
          type: string
        gitRepoBranch:
          type: string
        gitRepoUrl:
          type: string
      required:
        - gitRepoUrl
      type: object
    OperatorNormalization:
      properties:
        option:
          enum:
            - basic
          type: string
      type: object
    OperatorType:
      enum:
        - normalization
        - dbt
        - webhook
      type: string
    OperatorWebhook:
      properties:
        dbtCloud:
          properties:
            accountId:
              description: The account id associated with the job
              type: integer
            jobId:
              description: The job id associated with the job
              type: integer
          required:
            - accountId
            - jobId
          type: object
        executionBody:
          deprecated: true
          description: DEPRECATED. Populate dbtCloud instead.
          type: string
        executionUrl:
          deprecated: true
          description: DEPRECATED. Populate dbtCloud instead.
          type: string
        webhookConfigId:
          description: The id of the webhook configs to use from the workspace.
          format: uuid
          type: string
        webhookType:
          enum:
            - dbtCloud
          type: string
      type: object
    Pagination:
      properties:
        pageSize:
          type: integer
        rowOffset:
          type: integer
      type: object
    PrivateDestinationDefinitionRead:
      properties:
        destinationDefinition:
          $ref: "#/components/schemas/DestinationDefinitionRead"
        granted:
          type: boolean
      required:
        - destinationDefinition
        - granted
      type: object
    PrivateDestinationDefinitionReadList:
      properties:
        destinationDefinitions:
          items:
            $ref: "#/components/schemas/PrivateDestinationDefinitionRead"
          type: array
      required:
        - destinationDefinitions
      type: object
    PrivateSourceDefinitionRead:
      properties:
        granted:
          type: boolean
        sourceDefinition:
          $ref: "#/components/schemas/SourceDefinitionRead"
      required:
        - sourceDefinition
        - granted
      type: object
    PrivateSourceDefinitionReadList:
      properties:
        sourceDefinitions:
          items:
            $ref: "#/components/schemas/PrivateSourceDefinitionRead"
          type: array
      required:
        - sourceDefinitions
      type: object
    ReleaseStage:
      enum:
        - alpha
        - beta
        - generally_available
        - custom
      type: string
    ResetConfig:
      description: contains information about how a reset was configured. only populated if the job was a reset.
      properties:
        streamsToReset:
          items:
            $ref: "#/components/schemas/StreamDescriptor"
          type: array
      type: object
    ResourceId:
      format: uuid
      type: string
    ResourceRequirements:
      description: optional resource requirements to run workers (blank for unbounded allocations)
      properties:
        cpu_limit:
          type: string
        cpu_request:
          type: string
        memory_limit:
          type: string
        memory_request:
          type: string
      type: object
    SaveAttemptSyncConfigRequestBody:
      properties:
        attemptNumber:
          $ref: "#/components/schemas/AttemptNumber"
        jobId:
          $ref: "#/components/schemas/JobId"
        syncConfig:
          $ref: "#/components/schemas/AttemptSyncConfig"
      required:
        - jobId
        - attemptNumber
        - syncConfig
      type: object
    SaveStatsRequestBody:
      properties:
        attemptNumber:
          $ref: "#/components/schemas/AttemptNumber"
        jobId:
          $ref: "#/components/schemas/JobId"
        stats:
          $ref: "#/components/schemas/AttemptStats"
        streamStats:
          items:
            $ref: "#/components/schemas/AttemptStreamStats"
          type: array
      required:
        - jobId
        - attemptNumber
        - stats
      type: object
    SchemaChange:
      enum:
        - no_change
        - non_breaking
        - breaking
      type: string
    SelectedFieldInfo:
      description: Path to a field/column/property in a stream to be selected. For example, if the field to be selected is a database column called "foo", this will be ["foo"]. Use multiple path elements for nested schemas.
      properties:
        fieldPath:
          items:
            type: string
          type: array
      type: object
    SetInstancewideDestinationOauthParamsRequestBody:
      properties:
        destinationDefinitionId:
          $ref: "#/components/schemas/DestinationDefinitionId"
        params:
          additionalProperties: true
          type: object
      required:
        - destinationDefinitionId
        - params
      type: object
    SetInstancewideSourceOauthParamsRequestBody:
      properties:
        params:
          additionalProperties: true
          type: object
        sourceDefinitionId:
          $ref: "#/components/schemas/SourceDefinitionId"
      required:
        - sourceDefinitionId
        - params
      type: object
    SetWorkflowInAttemptRequestBody:
      properties:
        attemptNumber:
          $ref: "#/components/schemas/AttemptNumber"
        jobId:
          $ref: "#/components/schemas/JobId"
        processingTaskQueue:
          default: ""
          type: string
        workflowId:
          $ref: "#/components/schemas/WorkflowId"
      required:
        - jobId
        - attemptNumber
        - workflowId
      type: object
    SlackNotificationConfiguration:
      properties:
        webhook:
          type: string
      required:
        - webhook
      type: object
    SlugRequestBody:
      properties:
        slug:
          type: string
      required:
        - slug
      type: object
    SourceAuthSpecification:
      $ref: "#/components/schemas/AuthSpecification"
    SourceCloneConfiguration:
      properties:
        connectionConfiguration:
          $ref: "#/components/schemas/SourceConfiguration"
        name:
          type: string
      type: object
    SourceCloneRequestBody:
      description: The values required to configure the source. The schema for this should have an id of the existing source along with the configuration you want to change in case.
      properties:
        sourceCloneId:
          $ref: "#/components/schemas/SourceId"
        sourceConfiguration:
          $ref: "#/components/schemas/SourceCloneConfiguration"
      required:
        - sourceCloneId
      type: object
    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:
      properties:
        connectionConfiguration:
          $ref: "#/components/schemas/SourceConfiguration"
        sourceDefinitionId:
          $ref: "#/components/schemas/SourceDefinitionId"
        sourceId:
          $ref: "#/components/schemas/SourceId"
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - sourceDefinitionId
        - connectionConfiguration
        - workspaceId
      type: object
    SourceCreate:
      properties:
        connectionConfiguration:
          $ref: "#/components/schemas/SourceConfiguration"
        name:
          type: string
        sourceDefinitionId:
          $ref: "#/components/schemas/SourceDefinitionId"
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - workspaceId
        - name
        - sourceDefinitionId
        - connectionConfiguration
      type: object
    SourceDefinitionCreate:
      properties:
        dockerImageTag:
          type: string
        dockerRepository:
          type: string
        documentationUrl:
          format: uri
          type: string
        icon:
          type: string
        name:
          type: string
        resourceRequirements:
          $ref: "#/components/schemas/ActorDefinitionResourceRequirements"
      required:
        - name
        - dockerRepository
        - dockerImageTag
        - documentationUrl
      type: object
    SourceDefinitionId:
      format: uuid
      type: string
    SourceDefinitionIdRequestBody:
      properties:
        sourceDefinitionId:
          $ref: "#/components/schemas/SourceDefinitionId"
      required:
        - sourceDefinitionId
      type: object
    SourceDefinitionIdWithWorkspaceId:
      properties:
        sourceDefinitionId:
          $ref: "#/components/schemas/SourceDefinitionId"
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - sourceDefinitionId
        - workspaceId
      type: object
    SourceDefinitionRead:
      properties:
        dockerImageTag:
          type: string
        dockerRepository:
          type: string
        documentationUrl:
          format: uri
          type: string
        icon:
          type: string
        name:
          type: string
        protocolVersion:
          description: The Airbyte Protocol version supported by the connector
          type: string
        releaseDate:
          description: The date when this connector was first released, in yyyy-mm-dd format.
          format: date
          type: string
        releaseStage:
          $ref: "#/components/schemas/ReleaseStage"
        resourceRequirements:
          $ref: "#/components/schemas/ActorDefinitionResourceRequirements"
        sourceDefinitionId:
          $ref: "#/components/schemas/SourceDefinitionId"
        sourceType:
          enum:
            - api
            - file
            - database
            - custom
          type: string
      required:
        - sourceDefinitionId
        - name
        - dockerRepository
        - dockerImageTag
      type: object
    SourceDefinitionReadList:
      properties:
        sourceDefinitions:
          items:
            $ref: "#/components/schemas/SourceDefinitionRead"
          type: array
      required:
        - sourceDefinitions
      type: object
    SourceDefinitionSpecification:
      description: The specification for what values are required to configure the sourceDefinition.
      example:
        user:
          type: string
      type: object
    SourceDefinitionSpecificationRead:
      properties:
        advancedAuth:
          $ref: "#/components/schemas/AdvancedAuth"
        authSpecification:
          $ref: "#/components/schemas/SourceAuthSpecification"
        connectionSpecification:
          $ref: "#/components/schemas/SourceDefinitionSpecification"
        documentationUrl:
          type: string
        jobInfo:
          $ref: "#/components/schemas/SynchronousJobRead"
        sourceDefinitionId:
          $ref: "#/components/schemas/SourceDefinitionId"
      required:
        - sourceDefinitionId
        - jobInfo
      type: object
    SourceDefinitionUpdate:
      description: Update the SourceDefinition. Currently, the only allowed attribute to update is the default docker image version.
      properties:
        dockerImageTag:
          type: string
        resourceRequirements:
          $ref: "#/components/schemas/ActorDefinitionResourceRequirements"
        sourceDefinitionId:
          $ref: "#/components/schemas/SourceDefinitionId"
      required:
        - sourceDefinitionId
        - dockerImageTag
      type: object
    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.
      properties:
        breakingChange:
          type: boolean
        catalog:
          $ref: "#/components/schemas/AirbyteCatalog"
        catalogDiff:
          $ref: "#/components/schemas/CatalogDiff"
        catalogId:
          format: uuid
          type: string
        connectionStatus:
          $ref: "#/components/schemas/ConnectionStatus"
        jobInfo:
          $ref: "#/components/schemas/SynchronousJobRead"
      required:
        - jobInfo
      type: object
    SourceDiscoverSchemaRequestBody:
      properties:
        connectionId:
          format: uuid
          type: string
        disable_cache:
          type: boolean
        notifySchemaChange:
          type: boolean
        sourceId:
          $ref: "#/components/schemas/SourceId"
      required:
        - sourceId
      type: object
    SourceDiscoverSchemaWriteRequestBody:
      description: to write this requested object to database.
      properties:
        catalog:
          $ref: "#/components/schemas/AirbyteCatalog"
        configurationHash:
          type: string
        connectorVersion:
          type: string
        sourceId:
          $ref: "#/components/schemas/SourceId"
      required:
        - catalog
      type: object
    SourceId:
      format: uuid
      type: string
    SourceIdRequestBody:
      properties:
        sourceId:
          $ref: "#/components/schemas/SourceId"
      required:
        - sourceId
      type: object
    SourceOauthConsentRequest:
      properties:
        oAuthInputConfiguration:
          $ref: "#/components/schemas/OAuthInputConfiguration"
        redirectUrl:
          description: The url to redirect to after getting the user consent
          type: string
        sourceDefinitionId:
          $ref: "#/components/schemas/SourceDefinitionId"
        sourceId:
          $ref: "#/components/schemas/SourceId"
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - sourceDefinitionId
        - workspaceId
        - redirectUrl
      type: object
    SourceRead:
      properties:
        connectionConfiguration:
          $ref: "#/components/schemas/SourceConfiguration"
        icon:
          type: string
        name:
          type: string
        sourceDefinitionId:
          $ref: "#/components/schemas/SourceDefinitionId"
        sourceId:
          $ref: "#/components/schemas/SourceId"
        sourceName:
          type: string
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - sourceDefinitionId
        - sourceId
        - workspaceId
        - connectionConfiguration
        - name
        - sourceName
      type: object
    SourceReadList:
      properties:
        sources:
          items:
            $ref: "#/components/schemas/SourceRead"
          type: array
      required:
        - sources
      type: object
    SourceSearch:
      properties:
        connectionConfiguration:
          $ref: "#/components/schemas/SourceConfiguration"
        name:
          type: string
        sourceDefinitionId:
          $ref: "#/components/schemas/SourceDefinitionId"
        sourceId:
          $ref: "#/components/schemas/SourceId"
        sourceName:
          type: string
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      type: object
    SourceSnippetRead:
      properties:
        icon:
          type: string
        name:
          type: string
        sourceDefinitionId:
          $ref: "#/components/schemas/SourceDefinitionId"
        sourceId:
          $ref: "#/components/schemas/SourceId"
        sourceName:
          type: string
      required:
        - sourceId
        - name
        - sourceDefinitionId
        - sourceName
      type: object
    SourceUpdate:
      properties:
        connectionConfiguration:
          $ref: "#/components/schemas/SourceConfiguration"
        name:
          type: string
        sourceId:
          $ref: "#/components/schemas/SourceId"
      required:
        - sourceId
        - connectionConfiguration
        - name
      type: object
    StateBlob:
      type: object
    StreamDescriptor:
      properties:
        name:
          type: string
        namespace:
          type: string
      required:
        - name
      type: object
    StreamJsonSchema:
      description: Stream schema using Json Schema specs.
      type: object
    StreamState:
      properties:
        streamDescriptor:
          $ref: "#/components/schemas/StreamDescriptor"
        streamState:
          $ref: "#/components/schemas/StateBlob"
      required:
        - streamDescriptor
      type: object
    StreamTransform:
      properties:
        streamDescriptor:
          $ref: "#/components/schemas/StreamDescriptor"
        transformType:
          enum:
            - add_stream
            - remove_stream
            - update_stream
          type: string
        updateStream:
          description: list of field transformations. order does not matter.
          items:
            $ref: "#/components/schemas/FieldTransform"
          type: array
      required:
        - transformType
        - streamDescriptor
      type: object
    SyncMode:
      enum:
        - full_refresh
        - incremental
      type: string
    SynchronousJobRead:
      properties:
        configId:
          description: only present if a config id was provided.
          type: string
        configType:
          $ref: "#/components/schemas/JobConfigType"
        connectorConfigurationUpdated:
          default: false
          type: boolean
        createdAt:
          format: int64
          type: integer
        endedAt:
          format: int64
          type: integer
        id:
          format: uuid
          type: string
        logs:
          $ref: "#/components/schemas/LogRead"
        succeeded:
          type: boolean
      required:
        - id
        - configType
        - createdAt
        - endedAt
        - succeeded
      type: object
    UploadRead:
      properties:
        resourceId:
          $ref: "#/components/schemas/ResourceId"
        status:
          enum:
            - succeeded
            - failed
          type: string
      required:
        - status
      type: object
    WebBackendCheckUpdatesRead:
      description: Summary of source and destination definitions that could be updated
      properties:
        destinationDefinitions:
          type: integer
        sourceDefinitions:
          type: integer
      required:
        - destinationDefinitions
        - sourceDefinitions
      type: object
    WebBackendConnectionCreate:
      properties:
        destinationId:
          $ref: "#/components/schemas/DestinationId"
        geography:
          $ref: "#/components/schemas/Geography"
        name:
          description: Optional name of the connection
          type: string
        namespaceDefinition:
          $ref: "#/components/schemas/NamespaceDefinitionType"
        namespaceFormat:
          default: null
          description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
          example: ${SOURCE_NAMESPACE}
          type: string
        nonBreakingChangesPreference:
          $ref: "#/components/schemas/NonBreakingChangesPreference"
        operationIds:
          items:
            $ref: "#/components/schemas/OperationId"
          type: array
        operations:
          items:
            $ref: "#/components/schemas/OperationCreate"
          type: array
        prefix:
          description: Prefix that will be prepended to the name of each stream when it is written to the destination.
          type: string
        resourceRequirements:
          $ref: "#/components/schemas/ResourceRequirements"
        schedule:
          $ref: "#/components/schemas/ConnectionSchedule"
        scheduleData:
          $ref: "#/components/schemas/ConnectionScheduleData"
        scheduleType:
          $ref: "#/components/schemas/ConnectionScheduleType"
        sourceCatalogId:
          format: uuid
          type: string
        sourceId:
          $ref: "#/components/schemas/SourceId"
        status:
          $ref: "#/components/schemas/ConnectionStatus"
        syncCatalog:
          $ref: "#/components/schemas/AirbyteCatalog"
      required:
        - sourceId
        - destinationId
        - status
      type: object
    WebBackendConnectionListItem:
      description: Information about a connection that shows up in the connection list view.
      properties:
        connectionId:
          $ref: "#/components/schemas/ConnectionId"
        destination:
          $ref: "#/components/schemas/DestinationSnippetRead"
        isSyncing:
          type: boolean
        latestSyncJobCreatedAt:
          $ref: "#/components/schemas/JobCreatedAt"
        latestSyncJobStatus:
          $ref: "#/components/schemas/JobStatus"
        name:
          type: string
        scheduleData:
          $ref: "#/components/schemas/ConnectionScheduleData"
        scheduleType:
          $ref: "#/components/schemas/ConnectionScheduleType"
        schemaChange:
          $ref: "#/components/schemas/SchemaChange"
        source:
          $ref: "#/components/schemas/SourceSnippetRead"
        status:
          $ref: "#/components/schemas/ConnectionStatus"
      required:
        - connectionId
        - name
        - source
        - destination
        - status
        - isSyncing
        - schemaChange
      type: object
    WebBackendConnectionListRequestBody:
      properties:
        destinationId:
          items:
            $ref: "#/components/schemas/DestinationId"
          type: array
        sourceId:
          items:
            $ref: "#/components/schemas/SourceId"
          type: array
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - workspaceId
      type: object
    WebBackendConnectionRead:
      properties:
        catalogDiff:
          $ref: "#/components/schemas/CatalogDiff"
        catalogId:
          format: uuid
          type: string
        connectionId:
          $ref: "#/components/schemas/ConnectionId"
        destination:
          $ref: "#/components/schemas/DestinationRead"
        destinationId:
          $ref: "#/components/schemas/DestinationId"
        geography:
          $ref: "#/components/schemas/Geography"
        isSyncing:
          type: boolean
        latestSyncJobCreatedAt:
          $ref: "#/components/schemas/JobCreatedAt"
        latestSyncJobStatus:
          $ref: "#/components/schemas/JobStatus"
        name:
          type: string
        namespaceDefinition:
          $ref: "#/components/schemas/NamespaceDefinitionType"
        namespaceFormat:
          default: null
          description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
          example: ${SOURCE_NAMESPACE}
          type: string
        nonBreakingChangesPreference:
          $ref: "#/components/schemas/NonBreakingChangesPreference"
        notifySchemaChanges:
          type: boolean
        operationIds:
          items:
            $ref: "#/components/schemas/OperationId"
          type: array
        operations:
          items:
            $ref: "#/components/schemas/OperationRead"
          type: array
        prefix:
          description: Prefix that will be prepended to the name of each stream when it is written to the destination.
          type: string
        resourceRequirements:
          $ref: "#/components/schemas/ResourceRequirements"
        schedule:
          $ref: "#/components/schemas/ConnectionSchedule"
        scheduleData:
          $ref: "#/components/schemas/ConnectionScheduleData"
        scheduleType:
          $ref: "#/components/schemas/ConnectionScheduleType"
        schemaChange:
          $ref: "#/components/schemas/SchemaChange"
        source:
          $ref: "#/components/schemas/SourceRead"
        sourceId:
          $ref: "#/components/schemas/SourceId"
        status:
          $ref: "#/components/schemas/ConnectionStatus"
        syncCatalog:
          $ref: "#/components/schemas/AirbyteCatalog"
      required:
        - connectionId
        - name
        - sourceId
        - destinationId
        - syncCatalog
        - status
        - source
        - destination
        - isSyncing
        - schemaChange
        - notifySchemaChanges
        - nonBreakingChangesPreference
      type: object
    WebBackendConnectionReadList:
      properties:
        connections:
          items:
            $ref: "#/components/schemas/WebBackendConnectionListItem"
          type: array
      required:
        - connections
      type: object
    WebBackendConnectionRequestBody:
      properties:
        connectionId:
          $ref: "#/components/schemas/ConnectionId"
        withRefreshedCatalog:
          type: boolean
      required:
        - connectionId
      type: object
    WebBackendConnectionUpdate:
      description: Used to apply a patch-style update to a connection, which means that null properties remain unchanged
      properties:
        connectionId:
          $ref: "#/components/schemas/ConnectionId"
        geography:
          $ref: "#/components/schemas/Geography"
        name:
          description: Name that will be set to the connection
          type: string
        namespaceDefinition:
          $ref: "#/components/schemas/NamespaceDefinitionType"
        namespaceFormat:
          default: null
          description: Used when namespaceDefinition is 'customformat'. If blank then behaves like namespaceDefinition = 'destination'. If "${SOURCE_NAMESPACE}" then behaves like namespaceDefinition = 'source'.
          example: ${SOURCE_NAMESPACE}
          type: string
        nonBreakingChangesPreference:
          $ref: "#/components/schemas/NonBreakingChangesPreference"
        notifySchemaChanges:
          type: boolean
        operations:
          items:
            $ref: "#/components/schemas/WebBackendOperationCreateOrUpdate"
          type: array
        prefix:
          description: Prefix that will be prepended to the name of each stream when it is written to the destination.
          type: string
        resourceRequirements:
          $ref: "#/components/schemas/ResourceRequirements"
        schedule:
          $ref: "#/components/schemas/ConnectionSchedule"
        scheduleData:
          $ref: "#/components/schemas/ConnectionScheduleData"
        scheduleType:
          $ref: "#/components/schemas/ConnectionScheduleType"
        skipReset:
          type: boolean
        sourceCatalogId:
          format: uuid
          type: string
        status:
          $ref: "#/components/schemas/ConnectionStatus"
        syncCatalog:
          $ref: "#/components/schemas/AirbyteCatalog"
      required:
        - connectionId
      type: object
    WebBackendGeographiesListResult:
      properties:
        geographies:
          items:
            $ref: "#/components/schemas/Geography"
          type: array
      required:
        - geographies
      type: object
    WebBackendOperationCreateOrUpdate:
      properties:
        name:
          type: string
        operationId:
          $ref: "#/components/schemas/OperationId"
        operatorConfiguration:
          $ref: "#/components/schemas/OperatorConfiguration"
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - name
        - operatorConfiguration
        - workspaceId
      type: object
    WebBackendWorkspaceState:
      properties:
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - workspaceId
      type: object
    WebBackendWorkspaceStateResult:
      properties:
        hasConnections:
          type: boolean
        hasDestinations:
          type: boolean
        hasSources:
          type: boolean
      required:
        - hasConnections
        - hasSources
        - hasDestinations
      type: object
    WebhookConfigRead:
      description: the readable info for a webhook config; omits sensitive info e.g. auth token
      properties:
        id:
          format: uuid
          type: string
        name:
          description: human-readable name e.g. for display in UI
          type: string
      required:
        - id
      type: object
    WebhookConfigWrite:
      properties:
        authToken:
          description: an auth token, to be passed as the value for an HTTP Authorization header.
          type: string
        name:
          description: human readable name for this webhook e.g. for UI display.
          type: string
        validationUrl:
          description: if supplied, the webhook config will be validated by checking that this URL returns a 2xx response.
          type: string
      type: object
    WorkflowId:
      type: string
    WorkflowStateRead:
      properties:
        running:
          type: boolean
      required:
        - running
      type: object
    WorkspaceCreate:
      properties:
        anonymousDataCollection:
          type: boolean
        defaultGeography:
          $ref: "#/components/schemas/Geography"
        displaySetupWizard:
          type: boolean
        email:
          format: email
          type: string
        name:
          type: string
        news:
          type: boolean
        notifications:
          items:
            $ref: "#/components/schemas/Notification"
          type: array
        securityUpdates:
          type: boolean
        webhookConfigs:
          items:
            $ref: "#/components/schemas/WebhookConfigWrite"
          type: array
      required:
        - name
      type: object
    WorkspaceGiveFeedback:
      properties:
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - workspaceId
      type: object
    WorkspaceId:
      format: uuid
      type: string
    WorkspaceIdRequestBody:
      properties:
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - workspaceId
      type: object
    WorkspaceRead:
      properties:
        anonymousDataCollection:
          type: boolean
        customerId:
          $ref: "#/components/schemas/CustomerId"
        defaultGeography:
          $ref: "#/components/schemas/Geography"
        displaySetupWizard:
          type: boolean
        email:
          format: email
          type: string
        feedbackDone:
          type: boolean
        firstCompletedSync:
          type: boolean
        initialSetupComplete:
          type: boolean
        name:
          type: string
        news:
          type: boolean
        notifications:
          items:
            $ref: "#/components/schemas/Notification"
          type: array
        securityUpdates:
          type: boolean
        slug:
          type: string
        webhookConfigs:
          items:
            $ref: "#/components/schemas/WebhookConfigRead"
          type: array
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - workspaceId
        - customerId
        - name
        - slug
        - initialSetupComplete
      type: object
    WorkspaceReadList:
      properties:
        workspaces:
          items:
            $ref: "#/components/schemas/WorkspaceRead"
          type: array
      required:
        - workspaces
      type: object
    WorkspaceUpdate:
      description: Used to apply a patch-style update to a workspace, which means that null properties remain unchanged
      properties:
        anonymousDataCollection:
          type: boolean
        defaultGeography:
          $ref: "#/components/schemas/Geography"
        displaySetupWizard:
          type: boolean
        email:
          format: email
          type: string
        initialSetupComplete:
          type: boolean
        news:
          type: boolean
        notifications:
          items:
            $ref: "#/components/schemas/Notification"
          type: array
        securityUpdates:
          type: boolean
        webhookConfigs:
          items:
            $ref: "#/components/schemas/WebhookConfigWrite"
          type: array
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - workspaceId
      type: object
    WorkspaceUpdateName:
      properties:
        name:
          type: string
        workspaceId:
          $ref: "#/components/schemas/WorkspaceId"
      required:
        - workspaceId
        - name
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http
