1
0
mirror of synced 2025-12-22 03:21:25 -05:00
Files
airbyte/airbyte-integrations/connectors/source-sendinblue/manifest.yaml
2024-08-27 03:14:59 +03:00

370 lines
8.0 KiB
YAML

version: 4.5.4
type: DeclarativeSource
check:
type: CheckStream
stream_names:
- campaigns
definitions:
streams:
campaigns:
type: DeclarativeStream
name: campaigns
primary_key:
- id
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /emailCampaigns
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- campaigns
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: offset
page_size_option:
type: RequestOption
inject_into: request_parameter
field_name: limit
pagination_strategy:
type: OffsetIncrement
page_size: 100
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/campaigns"
templates:
type: DeclarativeStream
name: templates
primary_key:
- id
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /smtp/templates
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- templates
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: offset
page_size_option:
type: RequestOption
inject_into: request_parameter
field_name: limit
pagination_strategy:
type: OffsetIncrement
page_size: 100
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/templates"
contacts:
type: DeclarativeStream
name: contacts
primary_key:
- id
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /contacts
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- contacts
record_filter:
type: RecordFilter
condition: "{{ record['modifiedAt'] >= stream_interval['start_time'] }}"
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: offset
page_size_option:
type: RequestOption
inject_into: request_parameter
field_name: limit
pagination_strategy:
type: OffsetIncrement
page_size: 100
incremental_sync:
type: DatetimeBasedCursor
cursor_field: modifiedAt
name: contacts
primary_key: id
path: /contacts
cursor_datetime_formats:
- "%Y-%m-%dT%H:%M:%S.%f%z"
datetime_format: "%Y-%m-%dT%H:%M:%S.%f%z"
start_datetime:
type: MinMaxDatetime
datetime: "2000-01-01T00:00:00Z"
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
start_time_option:
type: RequestOption
inject_into: request_parameter
field_name: modifiedSince
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/contacts"
base_requester:
type: HttpRequester
url_base: https://api.sendinblue.com/v3
authenticator:
type: ApiKeyAuthenticator
api_token: '{{ config["api_key"] }}'
inject_into:
type: RequestOption
field_name: api-key
inject_into: header
streams:
- $ref: "#/definitions/streams/campaigns"
- $ref: "#/definitions/streams/templates"
- $ref: "#/definitions/streams/contacts"
spec:
type: Spec
connection_specification:
type: object
$schema: http://json-schema.org/draft-07/schema#
required:
- api_key
properties:
api_key:
type: string
description: >-
Your API Key. See <a
href="https://developers.sendinblue.com/docs/getting-started">here</a>.
title: API Key
airbyte_secret: true
order: 0
additionalProperties: true
schemas:
campaigns:
type: object
$schema: http://json-schema.org/draft-07/schema#
additionalProperties: true
properties:
type:
type:
- "null"
- string
abTesting:
type:
- "null"
- boolean
createdAt:
type:
- "null"
- string
footer:
type:
- "null"
- string
header:
type:
- "null"
- string
htmlContent:
type:
- "null"
- string
id:
type:
- "null"
- integer
inlineImageActivation:
type:
- "null"
- boolean
mirrorActive:
type:
- "null"
- boolean
modifiedAt:
type:
- "null"
- string
name:
type:
- "null"
- string
previewText:
type:
- "null"
- string
recipients:
type:
- "null"
- object
replyTo:
type:
- "null"
- string
scheduledAt:
type:
- "null"
- string
sendAtBestTime:
type:
- "null"
- boolean
sender:
type:
- "null"
- object
additionalProperties: true
properties: {}
shareLink:
type:
- "null"
- string
statistics:
type:
- "null"
- object
status:
type:
- "null"
- string
subject:
type:
- "null"
- string
tag:
type:
- "null"
- string
testSent:
type:
- "null"
- boolean
toField:
type:
- "null"
- string
templates:
type: object
$schema: http://json-schema.org/draft-07/schema#
additionalProperties: true
properties:
type:
type:
- "null"
- string
createdAt:
type:
- "null"
- string
htmlContent:
type:
- "null"
- string
id:
type:
- "null"
- integer
isActive:
type:
- "null"
- boolean
modifiedAt:
type:
- "null"
- string
name:
type:
- "null"
- string
replyTo:
type:
- "null"
- string
sender:
type:
- "null"
- object
additionalProperties: true
properties: {}
subject:
type:
- "null"
- string
tag:
type:
- "null"
- string
testSent:
type:
- "null"
- boolean
toField:
type:
- "null"
- string
contacts:
type: object
$schema: http://json-schema.org/draft-07/schema#
additionalProperties: true
properties:
attributes:
type:
- "null"
- object
additionalProperties: true
properties: {}
createdAt:
type:
- "null"
- string
email:
type:
- "null"
- string
emailBlacklisted:
type:
- "null"
- boolean
id:
type:
- "null"
- integer
listIds:
type:
- "null"
- array
modifiedAt:
type:
- "null"
- string
smsBlacklisted:
type:
- "null"
- boolean