1
0
mirror of synced 2025-12-23 21:03:15 -05:00
Files
airbyte/airbyte-integrations/connectors/source-partnerstack/manifest.yaml
2025-02-26 20:03:31 -08:00

826 lines
19 KiB
YAML

version: 6.36.2
type: DeclarativeSource
check:
type: CheckStream
stream_names:
- groups
definitions:
streams:
customers:
type: DeclarativeStream
name: customers
primary_key:
- key
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /customers
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- items
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: starting_after
page_size_option:
type: RequestOption
field_name: limit
inject_into: request_parameter
pagination_strategy:
type: CursorPagination
page_size: 250
cursor_value: "{{ last_record['key'] }}"
stop_condition: "{{ response.data.has_more is false }}"
incremental_sync:
type: DatetimeBasedCursor
cursor_field: updated_at
cursor_datetime_formats:
- "%ms"
datetime_format: "%ms"
start_datetime:
type: MinMaxDatetime
datetime: "{{ config['start_date'] }}"
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
start_time_option:
type: RequestOption
field_name: min_updated
inject_into: request_parameter
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/customers"
deals:
type: DeclarativeStream
name: deals
primary_key:
- key
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /deals
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- items
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: starting_after
page_size_option:
type: RequestOption
field_name: limit
inject_into: request_parameter
pagination_strategy:
type: CursorPagination
page_size: 250
cursor_value: "{{ last_record['key'] }}"
stop_condition: "{{ response.data.has_more is false }}"
incremental_sync:
type: DatetimeBasedCursor
cursor_field: updated_at
cursor_datetime_formats:
- "%ms"
datetime_format: "%ms"
start_datetime:
type: MinMaxDatetime
datetime: "{{ config['start_date'] }}"
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
start_time_option:
type: RequestOption
field_name: min_updated
inject_into: request_parameter
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/deals"
groups:
type: DeclarativeStream
name: groups
primary_key:
- key
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /groups
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- items
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: starting_after
page_size_option:
type: RequestOption
field_name: limit
inject_into: request_parameter
pagination_strategy:
type: CursorPagination
page_size: 250
cursor_value: "{{ last_record['key'] }}"
stop_condition: "{{ response.data.has_more is false }}"
incremental_sync:
type: DatetimeBasedCursor
cursor_field: updated_at
cursor_datetime_formats:
- "%ms"
datetime_format: "%ms"
start_datetime:
type: MinMaxDatetime
datetime: "{{ config['start_date'] }}"
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
start_time_option:
type: RequestOption
field_name: min_updated
inject_into: request_parameter
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/groups"
leads:
type: DeclarativeStream
name: leads
primary_key:
- key
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /leads
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- items
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: starting_after
page_size_option:
type: RequestOption
field_name: limit
inject_into: request_parameter
pagination_strategy:
type: CursorPagination
page_size: 250
cursor_value: "{{ last_record['key'] }}"
stop_condition: "{{ response.data.has_more is false }}"
incremental_sync:
type: DatetimeBasedCursor
cursor_field: updated_at
cursor_datetime_formats:
- "%ms"
datetime_format: "%ms"
start_datetime:
type: MinMaxDatetime
datetime: "{{ config['start_date'] }}"
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
start_time_option:
type: RequestOption
field_name: min_updated
inject_into: request_parameter
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/leads"
partnerships:
type: DeclarativeStream
name: partnerships
primary_key:
- key
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /partnerships
http_method: GET
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- items
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: starting_after
page_size_option:
type: RequestOption
field_name: limit
inject_into: request_parameter
pagination_strategy:
type: CursorPagination
page_size: 250
cursor_value: "{{ last_record['key'] }}"
stop_condition: "{{ response.data.has_more is false }}"
incremental_sync:
type: DatetimeBasedCursor
cursor_field: updated_at
cursor_datetime_formats:
- "%ms"
datetime_format: "%ms"
start_datetime:
type: MinMaxDatetime
datetime: "{{ config['start_date'] }}"
datetime_format: "%Y-%m-%dT%H:%M:%SZ"
start_time_option:
type: RequestOption
field_name: min_updated
inject_into: request_parameter
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/partnerships"
rewards:
type: DeclarativeStream
name: rewards
primary_key:
- key
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /rewards
http_method: GET
request_parameters:
min_created: "{{ (timestamp(config['start_date']) * 1000) | int }}"
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- items
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: starting_after
page_size_option:
type: RequestOption
field_name: limit
inject_into: request_parameter
pagination_strategy:
type: CursorPagination
page_size: 250
cursor_value: "{{ last_record['key'] }}"
stop_condition: "{{ response.data.has_more is false }}"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/rewards"
transactions:
type: DeclarativeStream
name: transactions
primary_key:
- key
retriever:
type: SimpleRetriever
requester:
$ref: "#/definitions/base_requester"
path: /transactions
http_method: GET
request_parameters:
min_created: "{{ (timestamp(config['start_date']) * 1000) | int }}"
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- data
- items
paginator:
type: DefaultPaginator
page_token_option:
type: RequestOption
inject_into: request_parameter
field_name: starting_after
page_size_option:
type: RequestOption
field_name: limit
inject_into: request_parameter
pagination_strategy:
type: CursorPagination
page_size: 250
cursor_value: "{{ last_record['key'] }}"
stop_condition: "{{ response.data.has_more is false }}"
schema_loader:
type: InlineSchemaLoader
schema:
$ref: "#/schemas/transactions"
base_requester:
type: HttpRequester
url_base: https://api.partnerstack.com/api/v2
authenticator:
type: BasicHttpAuthenticator
password: "{{ config['private_key'] }}"
username: "{{ config['public_key'] }}"
streams:
- $ref: "#/definitions/streams/customers"
- $ref: "#/definitions/streams/deals"
- $ref: "#/definitions/streams/groups"
- $ref: "#/definitions/streams/leads"
- $ref: "#/definitions/streams/partnerships"
- $ref: "#/definitions/streams/rewards"
- $ref: "#/definitions/streams/transactions"
spec:
type: Spec
connection_specification:
type: object
$schema: http://json-schema.org/draft-07/schema#
required:
- public_key
- private_key
properties:
public_key:
type: string
description: The Live Public Key for a Partnerstack account.
title: Partnerstack Public key
airbyte_secret: true
order: 0
start_date:
type: string
description: >-
UTC date and time in the format 2017-01-25T00:00:00Z. Any data before
this date will not be replicated.
title: Start date
pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$
examples:
- "2017-01-25T00:00:00Z"
order: 1
private_key:
type: string
description: The Live Private Key for a Partnerstack account.
title: Partnerstack Private key
airbyte_secret: true
order: 2
additionalProperties: true
metadata:
autoImportSchema:
customers: false
deals: false
groups: false
leads: false
partnerships: false
rewards: false
transactions: false
yamlComponents:
global:
- authenticator
testedStreams: {}
assist: {}
schemas:
customers:
type: object
$schema: http://json-schema.org/draft-07/schema#
properties:
created_at:
type:
- "null"
- integer
customer_key:
type:
- "null"
- string
email:
type:
- "null"
- string
field_data:
type:
- "null"
- object
fields:
type:
- "null"
- array
key:
type:
- "null"
- string
meta:
type:
- "null"
- object
name:
type:
- "null"
- string
partner_key:
type:
- "null"
- string
partnership_key:
type:
- "null"
- string
provider_key:
type:
- "null"
- string
source_key:
type:
- "null"
- string
source_type:
type:
- "null"
- string
test:
type:
- "null"
- boolean
updated_at:
type:
- "null"
- integer
additionalProperties: true
deals:
type: object
$schema: http://json-schema.org/draft-07/schema#
properties:
account_name:
type:
- "null"
- object
amount:
type:
- "null"
- integer
close_date:
type:
- "null"
- string
contact_first_name:
type:
- "null"
- string
contact_last_name:
type:
- "null"
- string
created_at:
type:
- "null"
- integer
external_key:
type:
- "null"
- string
field_data:
type:
- "null"
- object
fields:
type:
- "null"
- array
group_key:
type:
- "null"
- string
key:
type:
- "null"
- string
lost_reason:
type:
- "null"
- string
meta:
type:
- "null"
- object
mold_key:
type:
- "null"
- string
partner_key:
type:
- "null"
- string
source:
type:
- "null"
- string
stage:
type:
- "null"
- string
team:
type:
- "null"
- object
team_member:
type:
- "null"
- object
updated_at:
type:
- "null"
- integer
additionalProperties: true
groups:
type: object
$schema: http://json-schema.org/draft-07/schema#
properties:
archived:
type:
- "null"
- boolean
created_at:
type:
- "null"
- integer
default:
type:
- "null"
- boolean
features:
type:
- "null"
- object
key:
type:
- "null"
- string
name:
type:
- "null"
- string
slug:
type:
- "null"
- string
updated_at:
type:
- "null"
- integer
additionalProperties: true
leads:
type: object
$schema: http://json-schema.org/draft-07/schema#
properties:
amount:
type:
- "null"
- integer
approved:
type:
- "null"
- boolean
created_at:
type:
- "null"
- integer
external_key:
type:
- "null"
- string
field_data:
type:
- "null"
- object
fields:
type:
- "null"
- array
group_key:
type:
- "null"
- string
key:
type:
- "null"
- string
meta:
type:
- "null"
- object
mold_key:
type:
- "null"
- string
partner_key:
type:
- "null"
- string
status:
type:
- "null"
- string
updated_at:
type:
- "null"
- integer
additionalProperties: true
partnerships:
type: object
$schema: http://json-schema.org/draft-07/schema#
properties:
created_at:
type:
- "null"
- integer
email:
type:
- "null"
- string
first_name:
type:
- "null"
- string
group:
type:
- "null"
- object
joined_at:
type:
- "null"
- integer
key:
type:
- "null"
- string
last_name:
type:
- "null"
- string
m_data:
type:
- "null"
- object
manager:
type:
- "null"
- object
partner_key:
type:
- "null"
- string
stats:
type:
- "null"
- object
tags:
type:
- "null"
- array
team:
type:
- "null"
- object
updated_at:
type:
- "null"
- integer
additionalProperties: true
rewards:
type: object
$schema: http://json-schema.org/draft-07/schema#
properties:
description:
type:
- "null"
- string
action:
type:
- "null"
- object
amount:
type:
- "null"
- integer
created_at:
type:
- "null"
- integer
customer:
type:
- "null"
- object
invoice:
type:
- "null"
- object
key:
type:
- "null"
- string
offer:
type:
- "null"
- object
partnership:
type:
- "null"
- object
reward_status:
type:
- "null"
- string
transaction:
type:
- "null"
- object
trigger:
type:
- "null"
- object
updated_at:
type:
- "null"
- integer
additionalProperties: true
transactions:
type: object
$schema: http://json-schema.org/draft-07/schema#
properties:
amount:
type:
- "null"
- integer
amount_usd:
type:
- "null"
- integer
approved:
type:
- "null"
- boolean
category_key:
type:
- "null"
- string
created_at:
type:
- "null"
- integer
currency:
type:
- "null"
- string
customer:
type:
- "null"
- object
customer_key:
type:
- "null"
- string
extension:
type:
- "null"
- object
key:
type:
- "null"
- string
product_key:
type:
- "null"
- object
updated_at:
type:
- "null"
- integer
additionalProperties: true