1
0
mirror of synced 2026-01-03 15:04:01 -05:00
Files
airbyte/airbyte-integrations/connectors/source-zenloop/source_zenloop/manifest.yaml
Brian Lai 903d34e5f1 [Low-Code CDK] Enforce manifest against the airbyte-cdk version and the Beta version 0.29.0 (#23796)
* enforce manifest version correctness against the CDK package being used

* parse versions into parts for better comparisons and error checking

* fix pr feedback and derp forgot to actually add the commit with the low-code manifests updated to the beta version

* pr feedback and fix new tests since last rebase
2023-03-16 00:50:30 -04:00

143 lines
4.1 KiB
YAML

version: "0.29.0"
definitions:
selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path: ["{{ parameters['data_field'] }}"]
requester:
type: HttpRequester
http_method: "GET"
authenticator:
type: BearerAuthenticator
api_token: "{{ config['api_token'] }}"
retriever:
type: SimpleRetriever
$parameters:
url_base: "https://api.zenloop.com/v1/"
record_selector:
$ref: "#/definitions/selector"
paginator:
type: DefaultPaginator
pagination_strategy:
type: PageIncrement
page_size: 50
start_from_page: 1
page_size_option:
field_name: "per_page"
inject_into: "request_parameter"
page_token_option:
type: RequestPath
base_stream:
type: DeclarativeStream
retriever:
$ref: "#/definitions/retriever"
requester:
$ref: "#/definitions/requester"
incremental_base_stream:
incremental_sync:
$ref: "#/definitions/incremental_sync"
$ref: "#/definitions/base_stream"
retriever:
$ref: "#/definitions/retriever"
requester:
$ref: "#/definitions/requester"
request_parameters:
order_type: "desc"
order_by: "inserted_at"
date_shortcut: "custom"
surveys:
$ref: "#/definitions/base_stream"
$parameters:
name: "surveys"
path: "surveys"
data_field: "surveys"
surveys_slicer:
class_name: source_zenloop.components.ZenloopPartitionRouter
$parameters:
config_parent_field: "survey_id"
parent_stream_configs:
- stream: "#/definitions/surveys"
parent_key: public_hash_id
partition_field: id
survey_groups:
$ref: "#/definitions/base_stream"
$parameters:
name: "survey_groups"
path: "survey_groups"
data_field: "survey_groups"
survey_groups_slicer:
class_name: source_zenloop.components.ZenloopPartitionRouter
$parameters:
config_parent_field: "survey_group_id"
parent_stream_configs:
- stream: "#/definitions/survey_groups"
parent_key: public_hash_id
partition_field: id
incremental_sync:
type: DatetimeBasedCursor
cursor_field: "inserted_at"
datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ"
cursor_granularity: "PT0.000001S"
start_datetime:
datetime: "{{ config['date_from'] }}"
datetime_format: "%Y-%m-%d"
end_datetime:
datetime: "{{ today_utc() }}"
datetime_format: "%Y-%m-%d"
step: "P1M"
end_time_option:
field_name: "date_to"
inject_into: "request_parameter"
start_time_option:
field_name: "date_from"
inject_into: "request_parameter"
properties:
$ref: "#/definitions/base_stream"
$parameters:
name: "properties"
data_field: "properties"
retriever:
$ref: "#/definitions/retriever"
requester:
$ref: "#/definitions/requester"
path: "{{ 'surveys/' + config['survey_id'] + '/properties' if config['survey_id'] else 'surveys/' + stream_slice.id + '/properties' }}"
partition_router:
$ref: "#/definitions/surveys_slicer"
answers:
$ref: "#/definitions/incremental_base_stream"
$parameters:
name: "answers"
data_field: "answers"
retriever:
$ref: "#/definitions/retriever"
requester:
$ref: "#/definitions/incremental_base_stream/retriever/requester"
path: "{{ 'surveys/' + stream_slice.id + '/answers' }}"
partition_router:
$ref: "#/definitions/surveys_slicer"
answers_survey_group:
$ref: "#/definitions/incremental_base_stream"
$parameters:
name: "answers_survey_group"
data_field: "answers"
retriever:
$ref: "#/definitions/retriever"
requester:
$ref: "#/definitions/incremental_base_stream/retriever/requester"
path: "{{ 'survey_groups/' + stream_slice.id + '/answers' }}"
partition_router:
$ref: "#/definitions/survey_groups_slicer"
streams:
- "#/definitions/surveys"
- "#/definitions/survey_groups"
- "#/definitions/properties"
- "#/definitions/answers"
- "#/definitions/answers_survey_group"
check:
type: CheckStream
stream_names: ["surveys"]