1
0
mirror of synced 2026-01-31 19:01:59 -05:00
Files
airbyte/airbyte-integrations/connectors/source-clickup-api/source_clickup_api/clickup_api.yaml
Josix 07af2ff4bf 🎉 New Source: ClickUp (#17770)
* feat(connectors): add source clickup api template

* feat(connectors/clickup-api): add /user and /team endpoint configs

* docs(clickup-connectors): add clickup source doc

* feat: add tasks stream and list stream to ClickUp API

* feat: add space stream and folder stream to clikcup api

* feat: update acceptance-test-config.yml w/ version in 0.2.12

459856b73c/airbyte-integrations/bases/source-acceptance-test (migrating-acceptance-test-configyml-to-latest-configuration-format)

* docs: add descripiton for optional configs fields

* fix: fix list.json schema

* fix: add ignore_fields to ignore changing value in full_refresh of acceptance-tests

* add clickup to source def

* auto-bump connector version

Co-authored-by: marcosmarxm <marcosmarxm@gmail.com>
Co-authored-by: Octavia Squidington III <octavia-squidington-iii@users.noreply.github.com>
Co-authored-by: Marcos Marx <marcosmarxm@users.noreply.github.com>
2022-11-13 17:41:23 -03:00

137 lines
3.6 KiB
YAML

version: "0.1.0"
definitions:
schema_loader:
type: JsonSchema
file_path: "./source_clickup_api/schemas/{{ options['name'] }}.json"
singleSelector:
type: RecordSelector
extractor:
type: DpathExtractor
field_pointer: []
arraySelector:
type: RecordSelector
extractor:
type: DpathExtractor
field_pointer: [ "{{ options['name'] }}s" ]
requester:
type: HttpRequester
name: "{{ options['name'] }}"
http_method: "GET"
authenticator:
type: ApiKeyAuthenticator
header: "Authorization"
api_token: "{{ config['api_token'] }}"
paginator:
type: NoPagination
retriever:
type: SimpleRetriever
$options:
url_base: "https://api.clickup.com/api/v2"
name: "{{ options['name'] }}"
primary_key: "{{ options['primary_key'] }}"
streams:
- type: DeclarativeStream
$options:
name: "user"
schema_loader:
$ref: "*ref(definitions.schema_loader)"
retriever:
$ref: "*ref(definitions.retriever)"
requester:
$ref: "*ref(definitions.requester)"
path: "/user"
paginator:
$ref: "*ref(definitions.paginator)"
record_selector:
$ref: "*ref(definitions.singleSelector)"
- type: DeclarativeStream
$options:
name: "team"
schema_loader:
$ref: "*ref(definitions.schema_loader)"
retriever:
$ref: "*ref(definitions.retriever)"
requester:
$ref: "*ref(definitions.requester)"
path: "/team"
paginator:
$ref: "*ref(definitions.paginator)"
record_selector:
$ref: "*ref(definitions.arraySelector)"
- type: DeclarativeStream
$options:
name: "list"
schema_loader:
$ref: "*ref(definitions.schema_loader)"
retriever:
$ref: "*ref(definitions.retriever)"
requester:
$ref: "*ref(definitions.requester)"
path: "folder/{{ config['folder_id'] }}/list"
paginator:
$ref: "*ref(definitions.paginator)"
record_selector:
$ref: "*ref(definitions.arraySelector)"
- type: DeclarativeStream
$options:
name: "space"
schema_loader:
$ref: "*ref(definitions.schema_loader)"
retriever:
$ref: "*ref(definitions.retriever)"
requester:
$ref: "*ref(definitions.requester)"
path: "team/{{ config['team_id'] }}/space"
paginator:
$ref: "*ref(definitions.paginator)"
record_selector:
$ref: "*ref(definitions.arraySelector)"
- type: DeclarativeStream
$options:
name: "folder"
schema_loader:
$ref: "*ref(definitions.schema_loader)"
retriever:
$ref: "*ref(definitions.retriever)"
requester:
$ref: "*ref(definitions.requester)"
path: "space/{{ config['space_id'] }}/folder"
paginator:
$ref: "*ref(definitions.paginator)"
record_selector:
$ref: "*ref(definitions.arraySelector)"
- type: DeclarativeStream
$options:
name: "task"
schema_loader:
$ref: "*ref(definitions.schema_loader)"
retriever:
$ref: "*ref(definitions.retriever)"
requester:
$ref: "*ref(definitions.requester)"
path: "list/{{ config['list_id'] }}/task"
record_selector:
$ref: "*ref(definitions.arraySelector)"
paginator:
type: DefaultPaginator
page_size_option:
inject_into: "request_parameter"
field_name: "page_size"
pagination_strategy:
type: "OffsetIncrement"
page_size: 1
page_token_option:
field_name: "page"
inject_into: "request_parameter"
check:
type: CheckStream
stream_names: ["user", "team", "space", "folder", "list", "task"]