Skip to content

Instantly share code, notes, and snippets.

@natikgadzhi
Created April 8, 2024 17:23
Show Gist options
  • Save natikgadzhi/4749d33ecaa326b845b6840444d3c82b to your computer and use it in GitHub Desktop.
Save natikgadzhi/4749d33ecaa326b845b6840444d3c82b to your computer and use it in GitHub Desktop.
Holidays API Airbyte Connector
version: 0.79.1
type: DeclarativeSource
check:
type: CheckStream
stream_names:
- holidays
definitions:
streams:
holidays:
type: DeclarativeStream
name: holidays
primary_key:
- uuid
retriever:
type: SimpleRetriever
requester:
$ref: '#/definitions/base_requester'
path: holidays
http_method: GET
request_parameters:
country: '{{ config[''country''] }}'
year: '{{ config[''year''] }}'
record_selector:
type: RecordSelector
extractor:
type: DpathExtractor
field_path:
- holidays
schema_loader:
type: InlineSchemaLoader
schema:
$ref: '#/schemas/holidays'
base_requester:
type: HttpRequester
url_base: https://holidayapi.com/v1/
authenticator:
type: ApiKeyAuthenticator
api_token: '{{ config[''api_key''] }}'
inject_into:
type: RequestOption
inject_into: request_parameter
field_name: key
streams:
- $ref: '#/definitions/streams/holidays'
spec:
type: Spec
connection_specification:
type: object
$schema: http://json-schema.org/draft-07/schema#
required:
- api_key
- country
- number_of_years
- year
properties:
api_key:
type: string
title: API Key
airbyte_secret: true
order: 0
country:
type: string
title: Country Or State
description: >-
For countries, ISO 3166-1 alpha-2 or ISO 3166-1 alpha-3 format. For
states / provinces (with our States & Provinces plan), ISO 3166-2
format. Accepts up to 10 comma separated values.
default: US
order: 1
number_of_years:
type: string
title: Number of Years
default: '3'
order: 2
year:
type: string
title: Year
order: 3
additionalProperties: true
metadata:
autoImportSchema:
holidays: true
schemas:
holidays:
type: object
$schema: http://json-schema.org/schema#
properties:
country:
type:
- string
- 'null'
date:
type:
- string
- 'null'
name:
type:
- string
- 'null'
observed:
type:
- string
- 'null'
public:
type:
- boolean
- 'null'
uuid:
type: string
weekday:
type:
- object
- 'null'
properties:
date:
type:
- object
- 'null'
properties:
name:
type:
- string
- 'null'
numeric:
type:
- string
- 'null'
observed:
type:
- object
- 'null'
properties:
name:
type:
- string
- 'null'
numeric:
type:
- string
- 'null'
required:
- uuid
additionalProperties: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment