1
0
mirror of synced 2026-01-01 00:02:54 -05:00
Files
airbyte/docs/connector-development/config-based/source_schema.yaml
2022-11-10 22:22:17 -08:00

632 lines
15 KiB
YAML

---
"$schema": "http://json-schema.org/draft-06/schema#"
title: Connector Builder #TODO
type: object
description: Connector Builder structs #TODO
properties:
version:
"$ref": "#/definitions/Version"
streams:
"$ref": "#/definitions/Streams"
check:
"$ref": "#/definitions/ConnectionChecker"
definitions:
"$options":
type: object
additionalProperties: true
ConnectionChecker:
type: object
anyOf:
- "$ref": "#/definitions/CheckStream"
CheckStream:
type: object
additionalProperties: true
required:
- stream_names
properties:
"$options":
"$ref": "#/definitions/$options"
stream_names:
type: array
items:
type: string
Version:
type: string
description: "connector definition version"
Streams:
type: array
items:
"$ref": "#/definitions/Stream"
Stream:
type: object
additionalProperties: true
required:
- name
- retriever
properties:
"$options":
"$ref": "#/definitions/$options"
name:
type: string
primary_key:
"$ref": "#/definitions/PrimaryKey"
retriever:
"$ref": "#/definitions/Retriever"
stream_cursor_field:
type: string
transformations:
"$ref": "#/definitions/RecordTransformation"
checkpoint_interval:
type: integer
PrimaryKey:
type: string
Retriever:
type: object
anyOf:
- "$ref": "#/definitions/SimpleRetriever"
SimpleRetriever:
type: object
additionalProperties: true
required:
- name
- requester
- record_selector
properties:
"$options":
"$ref": "#/definitions/$options"
name:
type: string
primary_key:
"$ref": "#/definitions/PrimaryKey"
requester:
"$ref": "#/definitions/Requester"
record_selector:
"$ref": "#/definitions/HttpSelector"
paginator:
"$ref": "#/definitions/Paginator"
stream_slicer:
"$ref": "#/definitions/StreamSlicer"
Requester:
type: object
anyOf:
- "$ref": "#/definitions/HttpRequester"
HttpRequester:
type: object
additionalProperties: true
required:
- name
- url_base
- path
properties:
"$options":
"$ref": "#/definitions/$options"
name:
type: string
url_base:
type: string
description: "base url"
path:
type: string
description: "path"
http_method:
"$ref": "#/definitions/HttpMethod"
default: "GET"
request_options_provider:
"$ref": "#/definitions/RequestOptionsProvider"
authenticator:
"$ref": "#/definitions/Authenticator"
error_handler:
"$ref": "#/definitions/ErrorHandler"
HttpMethod:
type: string
enum:
- GET
- POST
RequestOptionsProvider:
type: object
anyOf:
- "$ref": "#/definitions/InterpolatedRequestOptionsProvider"
InterpolatedRequestOptionsProvider:
type: object
additionalProperties: true
properties:
"$options":
"$ref": "#/definitions/$options"
request_parameters:
"$ref": "#/definitions/RequestInput"
request_headers:
"$ref": "#/definitions/RequestInput"
request_body_data:
"$ref": "#/definitions/RequestInput"
request_body_json:
"$ref": "#/definitions/RequestInput"
RequestInput:
type: object
additionalProperties: true
Authenticator:
type: object
description: "Authenticator type"
anyOf:
- "$ref": "#/definitions/OAuth"
- "$ref": "#/definitions/ApiKeyAuthenticator"
- "$ref": "#/definitions/BearerAuthenticator"
- "$ref": "#/definitions/BasicHttpAuthenticator"
ApiKeyAuthenticator:
type: object
additionalProperties: true
required:
- header
- api_token
properties:
"$options":
"$ref": "#/definitions/$options"
header:
type: string
api_token:
type: string
BearerAuthenticator:
type: object
additionalProperties: true
required:
- api_token
properties:
"$options":
"$ref": "#/definitions/$options"
api_token:
type: string
BasicHttpAuthenticator:
type: object
additionalProperties: true
required:
- username
properties:
"$options":
"$ref": "#/definitions/$options"
username:
type: string
password:
type: string
OAuth:
type: object
additionalProperties: true
required:
- token_refresh_endpoint
- client_id
- client_secret
- refresh_token
- access_token_name
- expires_in_name
properties:
"$options":
"$ref": "#/definitions/$options"
token_refresh_endpoint:
type: string
client_id:
type: string
client_secret:
type: string
refresh_token:
type: string
scopes:
type: array
items:
type: string
default: []
token_expiry_date:
type: string
access_token_name:
type: string
default: "access_token"
expires_in_name:
type: string
default: "expires_in"
refresh_request_body:
type: object
grant_type:
type: string
default: "refresh_token"
Paginator:
type: object
anyOf:
- "$ref": "#/definitions/DefaultPaginator"
- "$ref": "#/definitions/NoPagination"
DefaultPaginator:
type: object
additionalProperties: true
required:
- page_token_option
- pagination_strategy
- url_base
properties:
"$options":
"$ref": "#/definitions/$options"
page_size:
type: integer
page_size_option:
"$ref": "#/definitions/RequestOption"
page_token_option:
"$ref": "#/definitions/RequestOption"
pagination_strategy:
"$ref": "#/definitions/PaginationStrategy"
url_base:
type: string
NoPagination:
type: object
additionalProperties: true
RequestOption:
type: object
additionalProperties: true
required:
- inject_into
properties:
inject_into:
"$ref": "#/definitions/RequestOptionType"
field_name:
type: string
RequestOptionType:
type: string
enum:
- request_parameter
- header
- path
- body_data
- body_json
PaginationStrategy:
type: object
anyOf:
- "$ref": "#/definitions/CursorPagination"
- "$ref": "#/definitions/OffsetIncrement"
- "$ref": "#/definitions/PageIncrement"
CursorPagination:
type: object
additionalProperties: true
required:
- cursor_value
properties:
"$options":
"$ref": "#/definitions/$options"
cursor_value:
type: string
stop_condition:
type: string
page_size:
type: integer
OffsetIncrement:
type: object
additionalProperties: true
required:
- page_size
properties:
"$options":
"$ref": "#/definitions/$options"
page_size:
type: integer
PageIncrement:
type: object
additionalProperties: true
required:
- page_size
properties:
"$options":
"$ref": "#/definitions/$options"
page_size:
type: integer
HttpSelector:
type: object
anyOf:
- "$ref": "#/definitions/RecordSelector"
RecordSelector:
type: object
required:
- extractor
properties:
"$options":
"$ref": "#/definitions/$options"
extractor:
"$ref": "#/definitions/RecordExtractor"
record_filter:
"$ref": "#/definitions/RecordFilter"
RecordExtractor:
type: object
anyOf:
- "$ref": "#/definitions/DpathExtractor"
DpathExtractor:
type: object
additionalProperties: true
required:
- field_pointer
properties:
"$options":
"$ref": "#/definitions/$options"
field_pointer:
type: array
items:
type: string
RecordFilter:
type: object
additionalProperties: true
properties:
"$options":
"$ref": "#/definitions/$options"
condition:
type: string
StreamSlicer:
type: object
anyOf:
- "$ref": "#/definitions/DatetimeStreamSlicer"
- "$ref": "#/definitions/ListStreamSlicer"
- "$ref": "#/definitions/CartesianProductStreamSlicer"
- "$ref": "#/definitions/SubstreamSlicer"
- "$ref": "#/definitions/SingleSlice"
SingleSlice:
type: object
additionalProperties: true
SubstreamSlicer:
type: object
required:
- parent_stream_configs
additionalProperties: true
properties:
"$options":
"$ref": "#/definitions/$options"
parent_stream_configs:
type: array
items:
"$ref": "#/definitions/ParentStreamConfig"
ParentStreamConfig:
type: object
required:
- stream
- parent_key
- stream_slice_field
additionalProperties: true
properties:
"$options":
"$ref": "#/definitions/$options"
stream:
"$ref": "#/definitions/Stream"
parent_key:
type: string
stream_slice_field:
type: string
request_option:
"$ref": "#/definitions/RequestOption"
CartesianProductStreamSlicer:
type: object
required:
- stream_slicers
additionalProperties: true
properties:
"$options":
"$ref": "#/definitions/$options"
stream_slicers:
type: array
items:
"$ref": "#/definitions/StreamSlicer"
ListStreamSlicer:
type: object
required:
- slice_values
- cursor_field
additionalProperties: true
properties:
"$options":
"$ref": "#/definitions/$options"
slice_values:
type: array
items:
type: string
cursor_field:
type: string
request_option:
"$ref": "#/definitions/RequestOption"
DatetimeStreamSlicer:
type: object
required:
- start_datetime
- end_datetime
- step
- cursor_field
- datetime_format
additional_properties: false
properties:
"$options":
"$ref": "#/definitions/$options"
start_datetime:
"$ref": "#/definitions/MinMaxDatetime"
end_datetime:
"$ref": "#/definitions/MinMaxDatetime"
step:
type: string
cursor_field:
type: string
datetime_format:
type: string
start_time_option:
"$ref": "#/definitions/RequestOption"
end_time_option:
"$ref": "#/definitions/RequestOption"
stream_state_field_start:
type: string
stream_state_field_end:
type: string
lookback_window:
type: string
MinMaxDatetime:
type: object
required:
- datetime
additionalProperties: true
properties:
"$options":
"$ref": "#/definitions/$options"
datetime:
type: string
datetime_format:
type: string
min_datetime:
type: string
max_datetime:
type: string
ErrorHandler:
type: object
description: "Error handler"
anyOf:
- "$ref": "#/definitions/DefaultErrorHandler"
- "$ref": "#/definitions/CompositeErrorHandler"
DefaultErrorHandler:
type: object
required:
- max_retries
additionalProperties: true
properties:
"$options":
"$ref": "#/definitions/$options"
response_filters:
type: array
items:
"$ref": "#/definitions/HttpResponseFilter"
max_retries:
type: integer
default: 5
backoff_strategies:
type: array
items:
"$ref": "#/definitions/BackoffStrategy"
default: []
CompositeErrorHandler:
type: object
required:
- error_handlers
additionalProperties:
"$options":
"$ref": "#/definitions/$options"
error_handlers:
type: array
items:
"$ref": "#/definitions/ErrorHandler"
HttpResponseFilter:
type: object
required:
- action
additionalProperties: true
properties:
"$options":
"$ref": "#/definitions/$options"
action:
"$ref": "#/definitions/ResponseAction"
http_codes:
type: array
items:
type: integer
default: []
error_message_contains:
type: string
predicate:
type: string
ResponseAction:
type: string
enum:
- SUCCESS
- FAIL
- IGNORE
- RETRY
BackoffStrategy:
type: object
anyOf:
- "$ref": "#/definitions/ExponentialBackoff"
- "$ref": "#/definitions/ConstantBackoff"
- "$ref": "#/definitions/WaitTimeFromHeader"
- "$ref": "#/definitions/WaitUntilTimeFromHeader"
ExponentialBackoff:
type: object
additionalProperties: true
properties:
"$options":
"$ref": "#/definitions/$options"
factor:
type: integer
default: 5
ConstantBackoff:
type: object
additionalProperties: true
required:
- backoff_time_in_seconds
properties:
"$options":
"$ref": "#/definitions/$options"
backoff_time_in_seconds:
type: number
WaitTimeFromHeader:
type: object
additionalProperties: true
required:
- header
properties:
"$options":
"$ref": "#/definitions/$options"
header:
type: string
regex:
type: string
WaitUntilTimeFromHeader:
type: object
additionalProperties: true
required:
- header
properties:
"$options":
"$ref": "#/definitions/$options"
header:
type: string
regex:
type: string
min_wait:
type: number
RecordTransformation:
type: object
anyOf:
- "$ref": "#/definitions/AddFields"
- "$ref": "#/definitions/RemoveFields"
AddFields:
type: object
required:
- fields
additionalProperties: true
properties:
"$options":
"$ref": "#/definitions/$options"
fields:
type: array
items:
"$ref": "#/definitions/AddedFieldDefinition"
AddedFieldDefinition:
type: object
required:
- path
- value
additionalProperties: true
properties:
"$options":
"$ref": "#/definitions/$options"
path:
"$ref": "#/definitions/FieldPointer"
value:
type: string
FieldPointer:
type: array
items:
type: string
RemoveFields:
type: object
required:
- field_pointers
additionalProperties: true
properties:
"$options":
"$ref": "#/definitions/$options"
field_pointers:
type: array
items:
"$ref": "#/definitions/FieldPointer"