1
0
mirror of synced 2026-01-05 21:02:13 -05:00
Files
airbyte/airbyte-integrations/connectors/source-sendgrid/source_sendgrid/manifest.yaml
Marcos Marx a89fd05187 Source Sendgrid: add unsub groups stream (#26314)
* add unsubscribe groups stream

* add doc

* fix tests

* fix tests

* fix

* fix update version

* Automated Change

* Delete oss_registry.json

* add expected records

* add eof

* small fix

---------

Co-authored-by: Haithem Souala <haithem.souala@woopit.fr>
2023-05-23 10:03:06 -03:00

258 lines
7.4 KiB
YAML

version: "0.29.0"
definitions:
page_size: 50
step: "P30D"
schema_loader:
type: JsonFileSchemaLoader
file_path: "./source_sendgrid/schemas/{{ parameters.name }}.json"
requester:
type: HttpRequester
url_base: "https://api.sendgrid.com"
http_method: "GET"
authenticator:
type: "BearerAuthenticator"
api_token: "{{ config.apikey }}"
cursor_paginator:
type: DefaultPaginator
page_size: "#/definitions/page_size"
limit_option:
inject_into: "request_parameter"
field_name: "page_size"
page_token_option:
type: RequestPath
pagination_strategy:
type: "CursorPagination"
cursor_value: "{{ response._metadata.next }}"
offset_paginator:
type: DefaultPaginator
$parameters:
page_size: "#/definitions/page_size"
limit_option:
inject_into: "request_parameter"
field_name: "limit"
page_token_option:
type: RequestOption
inject_into: "request_parameter"
field_name: "offset"
pagination_strategy:
type: "OffsetIncrement"
retriever:
type: SimpleRetriever
incremental_sync:
type: "DatetimeBasedCursor"
start_datetime:
datetime: "{{ config['start_time'] }}"
datetime_format: "%s"
end_datetime:
datetime: "{{ now_utc() }}"
datetime_format: "%Y-%m-%d %H:%M:%S.%f%z"
step: "#/definitions/step"
start_time_option:
field_name: "start_time"
inject_into: "request_parameter"
end_time_option:
field_name: "end_time"
inject_into: "request_parameter"
datetime_format: "%s"
cursor_granularity: "PT1S"
messages_incremental_sync:
type: "DatetimeBasedCursor"
start_datetime:
datetime: "{{ config['start_time'] }}"
datetime_format: "%s"
end_datetime:
datetime: "{{ now_utc() }}"
datetime_format: "%Y-%m-%d %H:%M:%S.%f%z"
step: "#/definitions/step"
datetime_format: "%Y-%m-%dT%H:%M:%S.%f%z"
cursor_granularity: "PT0.000001S"
base_stream:
type: DeclarativeStream
schema_loader:
$ref: "#/definitions/schema_loader"
retriever:
$ref: "#/definitions/retriever"
record_selector:
extractor:
field_path: []
requester:
$ref: "#/definitions/requester"
paginator:
type: NoPagination
streams:
- $ref: "#/definitions/base_stream"
$parameters:
name: "lists"
primary_key: "id"
path: "/v3/marketing/lists"
field_path: ["result"]
retriever:
$ref: "#/definitions/base_stream/retriever"
paginator:
$ref: "#/definitions/cursor_paginator"
- $ref: "#/definitions/base_stream"
$parameters:
name: "campaigns"
primary_key: "id"
path: "/v3/marketing/campaigns"
field_path: ["result"]
retriever:
$ref: "#/definitions/base_stream/retriever"
paginator:
$ref: "#/definitions/cursor_paginator"
- $ref: "#/definitions/base_stream"
$parameters:
name: "contacts"
primary_key: "id"
path: "/v3/marketing/contacts"
field_path: ["result"]
- $ref: "#/definitions/base_stream"
$parameters:
name: "stats_automations"
primary_key: "id"
path: "/v3/marketing/stats/automations"
field_path: ["results"]
retriever:
$ref: "#/definitions/base_stream/retriever"
paginator:
$ref: "#/definitions/cursor_paginator"
- $ref: "#/definitions/base_stream"
$parameters:
name: "segments"
primary_key: "id"
path: "/v3/marketing/segments"
field_path: ["results"]
- $ref: "#/definitions/base_stream"
$parameters:
name: "single_sends"
primary_key: "id"
path: "/v3/marketing/stats/singlesends"
field_path: ["results"]
retriever:
$ref: "#/definitions/base_stream/retriever"
paginator:
$ref: "#/definitions/cursor_paginator"
- $ref: "#/definitions/base_stream"
$parameters:
name: "templates"
primary_key: "id"
path: "/v3/templates"
field_path: ["result"]
retriever:
$ref: "#/definitions/base_stream/retriever"
requester:
$ref: "#/definitions/base_stream/retriever/requester"
request_parameters:
generations: "legacy,dynamic"
paginator:
$ref: "#/definitions/cursor_paginator"
- $ref: "#/definitions/base_stream"
$parameters:
name: "bounces"
primary_key: "email"
cursor_field: "created"
path: "/v3/suppression/bounces"
field_path: []
incremental_sync:
$ref: "#/definitions/incremental_sync"
retriever:
$ref: "#/definitions/base_stream/retriever"
paginator:
$ref: "#/definitions/offset_paginator"
- $ref: "#/definitions/base_stream"
$parameters:
name: "global_suppressions"
primary_key: "email"
cursor_field: "created"
path: "/v3/suppression/unsubscribes"
field_path: []
incremental_sync:
$ref: "#/definitions/incremental_sync"
retriever:
$ref: "#/definitions/base_stream/retriever"
paginator:
$ref: "#/definitions/offset_paginator"
- $ref: "#/definitions/base_stream"
$parameters:
name: "blocks"
primary_key: "email"
cursor_field: "created"
path: "/v3/suppression/blocks"
field_path: []
incremental_sync:
$ref: "#/definitions/incremental_sync"
retriever:
$ref: "#/definitions/base_stream/retriever"
paginator:
$ref: "#/definitions/offset_paginator"
- $ref: "#/definitions/base_stream"
$parameters:
name: "suppression_groups"
primary_key: "id"
path: "/v3/asm/groups"
field_path: []
- $ref: "#/definitions/base_stream"
$parameters:
name: "suppression_group_members"
primary_key: "group_id"
path: "/v3/asm/suppressions"
field_path: []
retriever:
$ref: "#/definitions/base_stream/retriever"
paginator:
$ref: "#/definitions/offset_paginator"
- $ref: "#/definitions/base_stream"
$parameters:
name: "invalid_emails"
primary_key: "email"
cursor_field: "created"
path: "/v3/suppression/invalid_emails"
field_path: []
incremental_sync:
$ref: "#/definitions/incremental_sync"
retriever:
$ref: "#/definitions/base_stream/retriever"
paginator:
$ref: "#/definitions/offset_paginator"
- $ref: "#/definitions/base_stream"
$parameters:
name: "spam_reports"
primary_key: "email"
cursor_field: "created"
path: "/v3/suppression/spam_reports"
field_path: []
incremental_sync:
$ref: "#/definitions/incremental_sync"
retriever:
$ref: "#/definitions/base_stream/retriever"
paginator:
$ref: "#/definitions/offset_paginator"
- $ref: "#/definitions/base_stream"
$parameters:
name: "messages"
primary_key: "msg_id"
cursor_field: "last_event_time"
path: "/v3/messages"
field_path: []
incremental_sync:
$ref: "#/definitions/incremental_sync"
retriever:
$ref: "#/definitions/base_stream/retriever"
requester:
$ref: "#/definitions/requester"
request_parameters:
limit: "1000"
query: 'last_event_time BETWEEN TIMESTAMP "{{stream_slice.start_time}}" AND TIMESTAMP "{{stream_slice.end_time}}"'
- $ref: "#/definitions/base_stream"
$parameters:
name: "unsubscribe_groups"
primary_key: "id"
path: "/v3/asm/groups"
field_path: []
check:
type: CheckStream
stream_names: ["lists"]